0

このコードを使用して、ウィンドウがシングル ページ アプリケーション内で完全に読み込まれたときにバインドして、画像ギャラリーを読み込みます。

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

このイベントは、ウィンドウがロードされたときにのみ有効であり、単一ページ アプリケーションの場合、このイベントにはコールバック権限が 1 つしかなく、これはウィンドウがロードされた後にのみ有効ですか? 私のページ内に変更があるたびに、$(window).bind(......) のコールバックが再び呼び出されることはありませんか?! たとえば、シングル ページ アプリケーションで jQuery を使用してコンテンツの変更を要求するのに適しているのはどれですか。jQueryにhaschange()またはdom_has_loaded()はありますか?

私はそれを明確に指摘したことを願っています。

4

1 に答える 1

0

あなたがやろうとしていることを実行するjQueryのメソッドはありません。すべてのブラウザーでサポートされていない可能性のある DOM Mutation Events か、効率的ではない 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 に答える