【问题标题】:jQuery width() not working in Opera but works in FF, IE, Chrome, SafarijQuery width() 在 Opera 中不起作用,但在 FF、IE、Chrome、Safari 中起作用
【发布时间】:2018-01-25 08:54:01
【问题描述】:

我的网站上有一个手风琴菜单。我使用 jQuery 来获取菜单的宽度,从窗口宽度中减去它,然后将内容的宽度设置为差异。这在我尝试过的每个浏览器中都能正常工作 - 除了 Opera,它显然没有设置内容的宽度。

这是相关的 HTML:

<table style="width:100%;margin:0;border-spacing:0;border:0"><tr>
    <td id="sf_page_contents" style="vertical-align:top;padding:7px">
        ...
    </td>
    <td class="tocBackground" id="toc">
        ...
    </td>
</tr></table>

这里是相关的 Javascript:

function initFloatMenu()
{   var content=$("#sf_page_contents");
    var toc=$("#toc");
    var mX=0;    // menu X-position (left)
    var wnWidth=$(window).width();
    if (content.width()>wnWidth) mX=content.width()+"px";
    else
    {   mX=wnWidth-toc.outerWidth()+"px";
        content.css("width",mX);
    }
    toc.css("left",mX);
}

我也试过

    else
    {   mX=wnWidth-toc.outerWidth();
        content.width(mX);
        mX+="px";
    }

content.css("width",mX)content.width(mX) 都不会导致Opera 设置sf_page_contents 元素的宽度。

正如我所说,这段代码在 Firefox、IE、Chrome 和 Safari 中都能正常工作,但在 Opera 中却不行。

About Opera
Version information

Version     12.17
Build       1863
Platform    Win32
System      Windows 7

Browser identification
Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.17

我需要做什么才能让 Opera 正确设置内容部分的宽度?

我不是在寻找“为什么不这样做这种方式”类型的答案,我在寻找一种方法来修复 Opera 中现有代码的操作。

【问题讨论】:

  • 你使用什么 jQuery 版本? Opera 12.1 仅支持 jQuery 到 1.12
  • jQuery 1.7.2 - 但我不确定我想尝试支持 Opera 12,现在我意识到它有多老了......

标签: jquery cross-browser opera incompatibility


【解决方案1】:

当我发现我安装了 Opera 18 并尝试使用它而不是 12 时,这个问题就消失了,在我告诉 Opera 进行更新并下载了版本 50 之后 - 但我的 winDoze 桌面图标启动的仍然是 Opera 12 .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    相关资源
    最近更新 更多