1

大家好,这是一个不错的...

我有一个下拉菜单,当我单击它时在 IE8 中打开...位置错误,因为它没有正确读取 div 的宽度...但是当我单击它关闭时,它会跳转到正确的位置并关闭...它在所有其他浏览器中都可以正常工作,甚至在 IE7 中也可以正常工作......但由于某种原因 IE8 不想遵守......

这是代码...

http://jsfiddle.net/PHZpv/2/

    $("#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 事物并添加一个异常....

4

0 回答 0