2013-07-29 6 views
1

이 내가 사용하는 코드입니다 : (내 JS 콘솔에 동일한 정보가 너무 많이 기록되는 이유는 무엇입니까?

$("#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 개의 동일한 위치 정보를 나열합니다. 왜 그 사람이 누군지 압니까? 성능 문제가 발생할 수 있습니다.

답변

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); 
     } 
    }); 
+0

내가보기 ... 정말 고마워. 하지만이 경우에는 "api.scrollTo (0);"을 원하면 항상 #super_feature에 마우스를 두어야합니다. 나는 마우스없이 #super_feature에 끌 수 없습니다. 하지만이 경우에는 If를 $ (window) .mouseup 함수에 전달하고 #super_feature hover 함수를 삭제할 수 있습니다. 정말 고마워요! –

+0

도움이 된 것을 기쁘게 생각합니다 :) –