滚动

时间:2015-12-10 08:15:03

标签: javascript jquery

当用户滚动div时,我需要禁用临时事件mouseup。我在div上测试绑定滚动事件,在事件上测试preventDefaultstopImmadiatePropagation但不起作用。

代码原型:

$(document).ready(function() {
  $(document).on("mouseup", "#test", function(e) {
      $("body").append('<b style="color:red">Mouse up | </b>');
  });
  $("#test").scroll(function(e) {
      $("body").append('<b style="color:green">Scroll | </b>');
      e.preventDefault();
      e.stopImmediatePropagation();
  });
});

我提供了这个plunker示例:plunker

2 个答案:

答案 0 :(得分:2)

尝试使用.off()

JQuery API documentaion

<强>更新

正确的解决方案:Plunker

答案 1 :(得分:1)

layout_alignBaseLine

当触发滚动事件时,它将禁用$(document).ready(function() { $(document).on("mouseup", "#test", function(e) { $("body").append('<b style="color:red">Mouse up | </b>'); }); var isScrolling = false; $("#test").scroll(function(e) { $("body").append('<b style="color:green">Scroll | </b>'); e.preventDefault(); e.stopImmediatePropagation(); isScrolling = true; setTimeout(function(){ isScrolling = false; setTimeout(function(){ if(!isScrolling){ $(document).off("mouseup", "#test"); $(document).on("mouseup", "#test", function(e) { $("body").append('<b style="color:red">Mouse up | </b>'); }); } }, 500); }, 500); $(document).off("mouseup", "#test"); }); }); 事件。

http://plnkr.co/edit/630M9zZpNxXGBABvPq8q?p=preview