1

css 位置のリスト (a div) があります。inline-block中には隠れているrelative位置があります。そこで、いくつかのクラスを追加ulして、この div をに変換しようとしました。absolute通常、リストをクリックするとリストが表示されます。IE8/9以外の他のブラウザでも動作します。

私は「つまり、絶対位置の要素が消える」とグーグルし、解決策を試しましたが、うまくいきませんでした。

ここでテストを実行できます: http://jautochecklist.googlecode.com/svn/doc/test_popup.html

ページを保存 (Ctrl+S) し、スクリプトを編集してテストできます。

位置の変換は 956 行目 (jAutochecklist.js) から始まります。wrapper移動したい要素です

if (data.settings.absolutePosition){
            var offset = wrapper.offset();
            var dummy = $('<div></div>').attr('class', pluginName + '_dummy ' + pluginName + '_wrapper').width(wrapper.width()).height(wrapper.height());
            obj.after(dummy);
            //move the list so the absolute position can become effective
            wrapper.addClass(pluginName + '_absolute').appendTo('body').css({
                top: offset.top + 3,
                left: offset.left
            });
            elements.input.focus();
        }

また、リストが開いている/フォーカスされているときにポップアップを閉じると、IE ではリストが画面に残ります。

フィドル: http://jsbin.com/anokod/1/edit

4

2 に答える 2

1

filterラッパーのcssスタイルを絶対位置で削除することで問題を修正しました。

IE ではfilter:progid:DXImageTransform.Microsoft.gradient...、同じ配置要素に 2 つのプロパティが適用されると、このバグが発生します。

于 2013-05-29T21:13:07.640 に答える
0

高さを削除: スタイル jAutochecklist_wrapper で 20px

于 2013-05-29T20:33:03.187 に答える