解除绑定(滚动)停止所有使用滚动方法的代码 jquery

unbind(scroll) stop all codes working with scroll method jquery

我正在使用滚动方法在向下滚动后仅显示一次警报(sql 代码执行)。

 $(window).scroll(function(){
     if($(this).scrollTop()>200){
        alert("Sql executed");
        $(this).unbind("scroll");
 }  
    });

在我向下滚动后添加 show-new-fixed header 之前它一直运行良好,问题是 header 出现但是当 alert() 出现时,这个新的header不藏不露真人

$(window).scroll(function() {
  if ($(this).scrollTop() > 35) {
    $(".header").hide();
    $(".header_scroll").show();
  } else {
    $(".header_scroll").hide();
    $(".header").show();
  }
    });

我认为这是因为 .unbind(scroll),那么如何只针对警报而不是针对 header 解除绑定?

为您的滚动功能添加一个标识符。然后你可以解绑那个特定的函数:

$(window).bind("scroll.myScroll", function(){
  if ($(this).scrollTop() > 200) {
    console.log("Sql executed");
    $(this).unbind(".myScroll");
  }
});

$(window).scroll(function() {
  if ($(this).scrollTop() > 35) {
    $(".header").hide();
    $(".header_scroll").show();
  } else {
    $(".header_scroll").hide();
    $(".header").show();
  }
});
html,
body {
  height: 5000px;
}
.header,
.header_scroll {
  position: fixed;
}
.header_scroll {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="header">header</div>
<div class="header_scroll">header_scroll</div>