jQuery width()在Opera中不起作用,但适用于FF,IE,Chrome,Safari

时间:2018-01-25 08:54:01

标签: jquery cross-browser opera incompatibility

我的网站上有一个手风琴菜单。我使用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正确设置内容部分的宽度?

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

1 个答案:

答案 0 :(得分:0)

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