【发布时间】:2017-01-28 21:23:14
【问题描述】:
我正在尝试将一个元素的宽度设置为等于另一个元素的宽度。
问题是当第二个元素具有百分比宽度时,jQuery 的 .width() 函数在页面首次加载时返回不正确的宽度。
如果我在页面加载后执行相同操作,例如在 onclick 函数中,则 .width() 返回元素的正确大小。
只是在页面第一次加载时,好像 css 还没有完成从百分比计算实际元素宽度。
这是一些代码:
CSS:
#first {
width:50%;
}
Javascript:
$(function(){
function resizeResults() {
$("#results").css("width", $("#first").width());
}
resizeResults();
});
因此,这不会返回正确大小的#results 元素。如果我通过 onclick 方法调用此函数,那么它会将其设置为适当的宽度。
JavaScript/jQuery 应该考虑在执行代码之前加载的 css 百分比,对吧?
【问题讨论】:
-
尝试将所有内容放在
$(window).load(function() { ... });中,而不是$(function() { ... });。如果这不起作用,请包含您的所有代码,以便我们有一个完整的示例来复制您的问题。 -
您的文档中是否有 id 为
#first的元素,或者您只是依赖 css? -
@ibrahimmahrir 是的,我有一个带有 id 的元素。
-
@MichaelCoker 这会导致我的代码出错,说 $.fn 没有定义。
-
@TiFiShu 听起来你还有其他冲突的东西。您可以尝试将其放入它自己的脚本标签中。喜欢
<script>$(window).load(function() { ... });</script>
标签: javascript jquery css