Javascript 仅对滚动执行一次触发功能

Javascript 仅对滚动执行一次触发功能,javascript,jquery,Javascript,Jquery,当用户向下滚动700px时,我需要触发scroll上的click事件。这是我的密码: $(window).scroll(function(){ playVideo(); }); function playVideo() { var wScroll = $(window).scrollTop(); if (wScroll > 700) { $(".video a").trigger("click"); } } 问题是它会不确定地触发。我尝试

当用户向下滚动700px时,我需要触发scroll上的click事件。这是我的密码:

$(window).scroll(function(){
   playVideo();
});

function playVideo() {
    var wScroll = $(window).scrollTop();

    if (wScroll > 700) {
        $(".video a").trigger("click");
    }
}

问题是它会不确定地触发。我尝试使用scroll来启用
one()
,但它只在scroll上使用一个,而我需要在
触发器(“单击”)
上使用它。请帮助。

只需在触发的位置解除绑定:

$(window).on("scroll", playVideo);


function playVideo() {
    var wScroll = $(window).scrollTop();
    if (wScroll > 700) {
        $(".video a").trigger("click");
        $(window).off("scroll", playVideo);
    }
}

(请注意,您不需要在另一个函数中包装
playVideo

只需在触发单击并使用
:not()后将类设置为
a
要在Selector中排除该选项,请删除下一票,因为当我尝试格式化代码时,该答案是错误提交的
if(playVideo==true){playVideo();}
。猜猜那是什么意思
true()
No它不是。如果
playVideo==true
,则它不是一个函数,因此您无法执行
playVideo()
。playVideo是一个布尔变量,最初设置为true,播放视频后为false。我希望它对您有意义
playVideoBoolean = true;

$(window).scroll(function(){
  if (playVideoBoolean == true){
       playVideo();
}
playVideoBoolean = false;
    });

    function playVideo() {
        var wScroll = $(window).scrollTop();

        if (wScroll > 700) {
            $(".video a").trigger("click");
        }
    }