2013-01-11 2 views
0

마우스 끌기 이벤트를 캡처하려면 마우스 다운 핸들러 내에 처리기를 올리려고 했으므로 마우스를 아래로 움직이면 마우스를 감지 할 수 있어야합니다. onmousemove를 함수로 옮겨 놓았지만이 함수를 많이 사용할 수는 없습니다.마우스 끌기 이벤트를 캡처 할 때 이상한 일들이 발생했습니다. JS

무슨 일이 일어나고 있는지는 로그에 기록하려고하는 4 개가 아니라 점점 더 많은 숫자를 기록합니다 (적어도 그렇게 보입니다).

var clickx;   
    var clicky;   
    var releasex; 
    var releasey; 
    $('#tdw-layout-editable').bind("mousedown", function(e){ 
     clickx=e.clientX; 
     clicky=e.clientY; 
     console.log(clickx + " " + clicky); 
     $('#tdw-layout-editable').bind("mouseup", function(f){ 
     releasex = e.clientX; 
     releasey = e.clientY; 
     console.log(releasex + " " + releasey); 
    }); 
    }); 

정말 기괴한 : 당신에게 감사 \

+1

당신이'바인딩 mousedown' 외부의'mouseup' 바인드를 퍼팅 시도 했습니까? – dunli

+0

끌기는 일어날 수있는 많은 것의 한개이다, 나가하는 경우에 나는 사용자가 끌고 있다는 것을 명백하게 말하는 방법이다는 것을 생각하지 않는다? 아니면 ... .. 흠 ..... ... 흠 ... 당신이 옳을 수도 있습니다. –

+1

사용자가'.mousedown()'과'.mouseup()'을 사용하여 끌고 있는지 알 수 있습니다. 'mousedown'이 실행되고'mouseup'이 실행되지 않고'clientX'와'clientY'의 값이 바뀌면 아마도 사용자가 끌고있을 것입니다. – dunli

답변

0

대신이 작업을 수행 :

$(function(){ 
    var clickx;   
    var clicky;   
    var releasex; 
    var releasey; 
    $('#tdw-layout-editable').bind("mousedown", function(e){ 
     clickx=e.clientX; 
     clicky=e.clientY; 
     console.log(clickx + " " + clicky); 
    }).bind("mouseup", function(f){ 
     releasex = f.clientX; 
     releasey = f.clientY; 
     console.log(releasex + " " + releasey); 
    }); 
}); 
관련 문제