大家好,这是一个很好的...
我有一个下拉菜单,当我点击它在IE8中打开时...位置错误,因为它没有正确读取div的宽度...但是当我点击它关闭它时跳转到正确的位置并关闭...它在所有其他浏览器中工作正常甚至可以在IE7中正常工作......但由于某些原因,IE8不想遵守......
这是代码......
$("#btn-login").click(function () {
var buttonPos = $(this).offset();
var loginDropdown = $("#login-dropdown-wrapper");
console.log(loginDropdown.width() + "px"); // this returns 4 px.... on dropdown... but is ok on slide up... returns 240px...
loginDropdown.css({
"left": buttonPos.left - loginDropdown.width() + $(this).outerWidth() + "px",
"top": buttonPos.top + 45 + "px"
})
.slideToggle(400);
console.log(loginDropdown.width() + "px"); // this one always returns 240px.....
});
代码中添加了一些注释来解释这个问题......
任何帮助都会得到满足......
我可以硬编码宽度,但我不想这样做,因为jquery取消了$ .browser支持...没有简单的方法再说IF(ie8)...(不是我知道的)...除非你确切知道IE8的未来是什么导致了这个,然后你可以调用$ support的东西并添加一个例外....