首页 > 解决方案 > 如何在 (window).resize 之后完全删除 jquery 函数

问题描述

我创建了一个函数。
在调整视口大小后,我想完全删除该功能。
off() 方法仅删除滚动事件中的代码。
当我调整视口大小时,它会保持打印“这仍然在调整大小后执行”。
我可以在调整视口大小后完全删除“myFunction”,无论是否破坏我的功能?

function myFunction(ele) {
    myArray = [];
    this.num1 = $.each(ele, function(){
        var posx = ele.offset().top;
        myArray.push(pos);
        console.log('this is still execute after resize');
        $(window).on('scroll', function(){
            // abcxyz
        });
    });
}

var target = $('p');
var run = new myFunction(target);

$(window).on('resize',function(){
    console.log("resized");
    $(window).off('scroll', myFunction(target));
});

标签: javascriptjquery

解决方案


要使用该.off()函数,您必须首先使用.on()以下示例函数实例化事件

function myFunction(ele) {
    myArray = [];
    this.num1 = $.each(ele, function(){
        var posx = ele.offset().top;
        myArray.push(pos);
        console.log('this is still execute after resize');
        $(window).on('scroll', function(){
            // abcxyz
        });
    });
}

var target = $('p');
var run = new myFunction(target);

$(function(){
   $(window).on('scroll', myFunction(target));
});

$(window).on('resize',function(){
    console.log("resized");
    $(window).off('scroll', myFunction(target));
});

推荐阅读