我正在设置特定div的左边距(让我们称之为:div1)为:
-1 * $('.div2 canvas').width()/2
所以我使用以下代码行来做到这一点:
$('#div1').css('margin-left', -1 * $('.div2 canvas').width()/2);
加载页面后,它给出的结果是-150。但是,如果我在Chrome控制台中运行相同的完整代码行,则会得到正确的结果:-360,因为div2的总宽度为720.
我尝试添加:
$(window).load(function () { });
或
$('#div1').load(function () { });
或
$('.div2 canvas').load(function () { });
但这没有帮助。
我的假设是div2的宽度正在根据正在注入的某种信息而变化,并且一旦页面准备好了div 720px的总宽度(在此示例中),但我不完全确定如何一旦整个页面被加载并且已经注入了所有内容,就运行这行代码。
答案 0 :(得分:0)
$(window).load(function () { });
应该有所帮助。你也可以试试
$(document).ready(function () { });
但如果这没有帮助,你需要向我们展示你的页面(或包含问题的演示)以及之后注入的代码。
答案 1 :(得分:0)
您需要将此代码包装在文档就绪回调中。
$(document).ready(function () {
// Your code
}
这确保加载html,但它不关心加载的图像,这是.load的用武之地。如果你的div包含图像标记,你需要两个回调。
$(document).ready(function () { // Ensures that your document is loaded
$('.div2 canvas').load(function () { // Ensures that the images within our tag are loaded
// Your code
}
}
如果我们没有在文档就绪中附加第二个回调定义,那么我们引用$('。div2 canvas')的标记将不存在,因此不会绑定任何加载回调。