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」をマウスで上げます(ドラッグのようなものです。これが唯一の方法であり、マウスダウンは機能しませんでした)

ただし、私の問題は、これを行うときです: 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 に答える