我有一个带有css 位置的列表 (a div
) 。inline-block
里面有一个隐藏的relative
定位。ul
所以我尝试absolute
通过添加一些类来将这个 div 转换为。通常,当我们单击列表时,列表会显示出来。它适用于除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