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.
    });

});

我在某处读到总是将 jQuery 放在 Wordpress 的开头,所以我想我也可以,因为它有效。我如何摇动其余部分,以便 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接受一个ev(事件)参数,然后检查ev.type属性以查看它是否resize并相应地运行代码,如下所示:

$(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 回答