我有一个div
css位置的列表(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中,列表会保留在屏幕上。
答案 0 :(得分:1)
我通过使用绝对位置删除包装器上的css样式filter
来解决问题。
在IE中,如果在同一个定位元素上有2个属性filter:progid:DXImageTransform.Microsoft.gradient...
,则会导致此错误。
答案 1 :(得分:0)
删除高度:20px的样式jAutochecklist_wrapper