仅触发一次jQuery滚动事件

仅触发一次jQuery滚动事件,jquery,Jquery,我只想触发一次jQuery滚动事件,它可以工作,但当我有一个新的滚动事件时,它不工作,希望有人能帮助我 $(".content").scroll(function(){ if(var == 1) { $(".content").off("scroll"); console.log("it works only once"); } } $(".content").on("scroll", function() { console.log(

我只想触发一次jQuery滚动事件,它可以工作,但当我有一个新的滚动事件时,它不工作,希望有人能帮助我

$(".content").scroll(function(){ 
    if(var == 1) {
        $(".content").off("scroll");
        console.log("it works only once");
    }
}

$(".content").on("scroll", function() {
    console.log("This should work always, but it don't work");
});

谢谢

在我看来,您应该使用名称空间事件:

$(".content").on("scroll.custom", function(){ 
    if(someVariableCheck == 1) {
        $(".content").off("scroll.custom");
        console.log("it works only once");
    }
}

$(".content").on("scroll", function() {
    console.log("This should work always, but it don't work");
});

您可以使用
one
将特定处理程序绑定为只触发一次,但这将取消变量检查。

您可能需要查看
的文档。one()
是否有多个元素具有
.content
类?是的,您应该在第一次使用
.one()
,如果继续使用该代码,则必须准确指定要关闭的处理程序,而不指定关闭时应应用的处理程序,所有处理程序(包括第二个处理程序)都将被删除。(那么它就不起作用了)。使用名称空间打开/关闭事件。我已经尝试了.one(),但它不适用于if语句。