$(window).load(function()在完全加载的文档后无法执行

时间:2015-08-31 08:30:20

标签: javascript jquery html

我未能找到以下答案:

我有一个html文档,可以加载其他几个htmls。 这完美地完成了。

然而,在其中一个包含的htmls中,“navmenu.html",我希望在所有内容被加载后执行load()中找到的脚本修改“menu1”元素的类,该类位于包含的“navmenu.html”中。

ready()功能之后,load()功能执行之前navmenu.html”确实是&完全包含在文档中,因为我收到的错误消息是找不到元素“menu1”。

如果我在alert()开头按load()暂停操作 - 则会找到menu1元素 - 因为alert()导致的延迟给了时间要完成的ready()功能。

那么,有没有办法解决这个问题?

提前谢谢。

<body>
    <div id="navmenu"></div>
    <div id="carousel"></div>
</body>

<script language="javascript" type="text/javascript">
    jQuery( document ).ready(function( $ ) {
        $('#navmenu').load('navmenu.html');
        $('#carousel').load('carousel.html');
    });

    $(window).load(function() {
      var element = document.getElementById("menu1");
      element.classList.add("active");
    });
</script>

2 个答案:

答案 0 :(得分:5)

jQuery.load()具有以下签名(url,data,callbackFunction)。

你可以试试followind:

jQuery( document ).ready(function( $ ) {
    $('#navmenu').load('navmenu.html',[],function(){
         $('#carousel').load('carousel.html',[],function(){
             var element = document.getElementById("menu1");
             element.classList.add("active");
         });
    });
});

答案 1 :(得分:0)

非常感谢Radu Toader的回复。 它工作!!!

(我不确定这是否是正确的回答方式,因为这是我向小组提出的第一个问题。)

我也尝试了以下内容,因为该元素位于&#34; navmenu.html&#34;并为旋转木马分开了一条线。

$('#navmenu').load('navmenu.html',[],function(){
    var element = document.getElementById("menu1");
    element.classList.add("active");
});
$('#carousel').load('carousel.html');

我也尝试过你的答案,其中load.carousel由load.navmenu调用,它也有效。

你是否建议我使用你的#34;更复杂的&#34;解决方案而不是旋转木马的分离线?

再次感谢。

迪米特里奥斯