0

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

$(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()?

我希望我清楚地指出了这一点。

4

1 回答 1

0

jQuery 中没有任何方法可以做你想做的事情。这将需要可能并非所有浏览器都支持的 DOM 突变事件或效率不高的 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");
});
于 2012-05-08T20:56:58.690 回答