1

这是我正在使用的代码:

  $("#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 个相同的位置信息。有谁知道这是为什么?恐怕我会遇到性能问题。

4

1 回答 1

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);
      }
  });
于 2013-07-29T21:25:45.350 回答