如何根据窗口大小删除文档就绪的函数?

时间:2013-07-16 04:48:10

标签: jquery events

我尽可能多地尝试谷歌搜索,但我似乎无法找到答案。如果可以的话,请给我一些建议。

我刚刚学会了这样包装我的功能(不知道这种技术被称为对不起):

$(document).ready({
    myFunc.init();
});

var myFunc = {
    init: function() {
        // do a number of things
    }
};

我需要做的响应是在窗口大于特定大小时启动函数,并在窗口小于一定大小时删除该函数。

在我看来,这应该是一种简单的方法来做这样的事情:

$(document).ready({
    myFunc.init();
});
$(window).resize(function(){
    if($(window).width() > 700) {
        myFunc.init();
    } else {
        // remove myFunc.init()
    }
});

我遇到的最接近的事情是解开/死亡,这是我想在这里使用的吗?如果是这样,我该如何使用它?请帮忙。

2 个答案:

答案 0 :(得分:2)

您通常这样做:

var myFunc = {
    I_ran : false,
    init  : function() {
        // do a number of things
        if (! this.I_ran ) {

            this.elem = $('<div>');
            this.elem.appendTo('body');

            this.I_ran = true; // avoid multiple calls, 
                               // as resize fires continously
        }
    },
    destroy: function() {
        if (this.elem.length) this.elem.remove();
        this.I_ran = false;
    }
}

$(document).ready(function() {
    $(window).on('resize', function() {

        if ($(this).width() > 700) {
            myFunc.init();
        }else{
            myFunc.destroy();
        }

    }).trigger('resize');
});

答案 1 :(得分:0)

我认为您使用错误的{{1>} document.ready 应该是这样的,

syntax

此外,如果您取消绑定function test() { if($(window).width() > 700) { myFunc.init(); } $(document).ready(function(){ test(); $(window).resize(function(){ test(); }); }); function next timeinitialize againif condition是正确的,则无需取消绑定 {{1}}在这里使用。