jQuery width() 在 Opera 中不工作,但在 FF、IE、Chrome、Safari 中工作
jQuery width() not working in Opera but works in FF, IE, Chrome, Safari
我的网站上有一个手风琴菜单。我使用 jQuery 获取菜单的宽度,从 window 宽度中减去它,然后将内容的宽度设置为差值。这在我尝试过的每个浏览器中都能正常工作——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 正确设置内容部分的宽度?
我不是在寻找 "why not do it this way" 类型的答案,我是在寻找一种方法来修复 Opera 中现有代码的操作。
当我发现我安装了 Opera 18 并尝试使用它而不是 12 时,这个问题就消失了,在我告诉 Opera 进行更新并且它下载了版本 50 之后 - 但是我的 winDoze 桌面图标启动的那个仍然是歌剧 12.
我的网站上有一个手风琴菜单。我使用 jQuery 获取菜单的宽度,从 window 宽度中减去它,然后将内容的宽度设置为差值。这在我尝试过的每个浏览器中都能正常工作——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 正确设置内容部分的宽度?
我不是在寻找 "why not do it this way" 类型的答案,我是在寻找一种方法来修复 Opera 中现有代码的操作。
当我发现我安装了 Opera 18 并尝试使用它而不是 12 时,这个问题就消失了,在我告诉 Opera 进行更新并且它下载了版本 50 之后 - 但是我的 winDoze 桌面图标启动的那个仍然是歌剧 12.