1

ページのサイズ変更のためにすべてのコードを繰り返すのではなく、これを試しました:

$(document).ready(myfunction);
$(window).resize(myfunction);

function myfunction() {
    // do whatever
}

いくつか問題があります。ページが読み込まれたときに発生する必要があるもの(常に同じ)と、サイズ変更時に移動する必要があるものがあります。私のページは次のように設定されています:

jQuery(document).ready(function($) {

    //a bunch of static stuff here

    $wall.imagesLoaded(function(){
       //using an imagesloaded plugin
       //masonry is here & needs to reload on resize.
    });

});

私はどこかで読んで、Wordpressの最初にそのjQueryを常に置くようにしたので、それが機能したので、私もそうかもしれないと思いました。残りの部分を揺らして、Masonryがウィンドウのサイズ変更時にリロードするようにするにはどうすればよいですか?

ありがとう!

解決策のために編集:これはWordpressで機能しています。

    (function($) {

    $(document).ready(documentReadyFunction);
    $(window).resize(windowResizeFunction);

    function documentReadyFunction() {
        // functions for document ready
        onPageLoadOrResize();
        onPageLoad();
    }

    function windowResizeFunction() {
        // functions for window resize
        onPageLoadOrResize();
    }

    function onPageLoad() {
        alert("pageload");
    }


    function onPageLoadOrResize () {
        alert ("Load or Resize");
    }

    })(jQuery);
4

2 に答える 2

3

次のようなパターンを使用してみてください。

$(document).ready(documentReadyFunction);
$(window).resize(windowResizeFunction);

function documentReadyFunction() {
    genericStuffFunction()
    // do whatever for document ready
}

function windowResizeFunction() {
    genericStuffFunction()
    // do whatever for window resize
}

function genericStuffFunction() {
    // do whatever for document ready and window resize
}
于 2013-01-10T11:59:27.427 に答える
0

または、(イベント)パラメータmyFunctionを受け入れてから、プロパティをチェックしてそれが正しいかどうかを確認し、それに応じてコードを実行することもできます。evev.typeresize

$(document).ready(myfunction);
$(window).resize(myfunction);

function myfunction(ev, ui) {
    if (ev.type && ev.type == 'resize') {
        alert('resize');
    }

    // do main stuff here...
}

jsFiddleの例

于 2013-01-10T12:01:33.513 に答える