mousedown, mousemove 및 mouseup을 기반으로 변경되는 drag'n'drop 열, 크기 조정 가능 행 및 크기 조정이 가능한 열이있는 html 테이블을 보유하고 있습니다. 더 나은 성능을 위해, mousemove 동안 "마우스가 다운되어 있는지, 그리고 그렇다면 drag'n'drop, 크기 조정 가능 행 또는 크기 조정 가능 columsn"인지를 지속적으로 확인해야합니다. 또는 mousedown시 문서에 mousemove 처리기를 연결해야합니까? 특정 위치에 마우스를 가져 가면 마우스를 떼어 낼 수 있습니까? 클릭시 핸들러를 바인딩하고 바인딩 해제하는 것은 얼마나 비쌉니까? document.addEventListener('onmousemove', myEventHandler);
mousedown 및 mouseup시 mousedown 처리기 바인딩 및 바인딩 해제
좋은 예와 토론이있다 : 사실
/* document is always checking mousemove */
$(selector).mousedown(function(){
dropndrag = true;
});
$(document).mousemove(function(){
if (dropndrag == true) {
//do mouse move stuff
}
});
$(document).mouseup(function(){
if (dropndrag == true) {
dropndrag = false;
}
});
/* mousemove only bound to document after mousedown */
$(selector).mousedown(function(){
// attach handlers
$(document).mousemove(mousemove);
$(document).mouseup(mouseup);
});
function mousemove(){
// do mouse move stuff;
};
function mouseup() {
//unbind mousemove and mouseup handlers
$(document).off('mousemove', mousemove);
$(document).off('mouseup', mouseup);
}
은 빠른 것 같다
: 또한 좋은 방법은 단지 예를 들어, 특정 요소에 대한 기능을 발사합니다 "스위치/케이스"로, 각 이벤트 및 필터 1 개 문서 수신기를 가진 것으로 간주 ! –