单页应用程序和$(窗口).bind('load',function(){....}

时间:2012-05-08 19:23:43

标签: jquery

当窗口在单页应用程序中完全加载时,我使用此代码通过绑定来加载图库:

$(window).bind("load", function() {
    console.log("window loaded");
    $("div#gallery").slideViewerPro({
        autoslide: true,
        thumbsVis: false,
        galBorderWidth: 1,
        galBorderColor: "#003f00"
    });
});

此事件仅在窗口加载时有效,而在单页应用程序的情况下,此事件只有一个回调权限,这仅在窗口加载后?每当我的页面内有变化时,$(window).bind(......)的回调永远不会被再次调用?!例如,单页应用程序更适合使用jQuery请求更改内容。 jQuery中是否有haschange()或dom_has_loaded()?

我希望我能清楚地指出它。

1 个答案:

答案 0 :(得分:0)

jQuery中没有任何方法可以执行您要执行的操作。它需要在所有浏览器中都不支持的DOM Mutation事件或者效率不高的setInterval。

相反,将自定义事件绑定到窗口并在更改页面内容时触发事件。

$(window).bind("contentChanged load",function(){
    console.log("window loaded or changed");
    $("#gallery").slideViewerPro({ // div#gallery is very inefficient
        autoslide: true,
        thumbsVis: false,
        galBorderWidth: 1,
        galBorderColor: "#003f00"
    });
});

以及后来:

$("#content").load("somepage.php",function(){
    $(window).trigger("contentChanged");
});