为什么我的JS控制台记录了这么多相同的信息?

时间:2013-07-29 21:25:08

标签: jquery hover drag mouseup console.log

这是我正在使用的代码:

  $("#super_feature").hover(function () {
      $(window).mouseup(function () {
          dragBarPos = ($(".jspPane").position().left) * -1;
          console.log(dragBarPos);
      });
      if (dragBarPos > 1500) {
          api.scrollTo(0);
      }
  });

每当我将鼠标悬停在序列中时,我就会得到“.jspPane”“左”的位置,鼠标移动“#super_feature”(就像拖动一样,这是我让它工作的唯一方式,mousedown不工作)

然而,我的问题是当我这样做时:console.log(dragBarPos);控制台列出了大约20个相同的位置信息。谁知道为什么会这样?我担心我会遇到性能问题。

1 个答案:

答案 0 :(得分:2)

您正在嵌套事件。因此,当您触发hover事件时,窗口上的新mouseup事件将被绑定多次记录。

您的代码必须在这些行中查找。

var dragBarPos = 0;
$(window).mouseup(function () {
     dragBarPos = ($(".jspPane").position().left) * -1;
     console.log(dragBarPos);
}); 

$("#super_feature").hover(function () {
      if (dragBarPos > 1500) {
          api.scrollTo(0);
      }
  });