mousemove 이벤트가 왼쪽 마우스 버튼을 누른 상태에서만 활성화되고 버튼이 해제되면 mousemove 이벤트가 중지되도록 jQuery로 어떻게 할 수 있습니까?jQuery : 이벤트에 관한 질문
0
A
답변
1
간단한 방법은 플래그를 유지하는 것입니다.이 플래그는 왼쪽 버튼을 누른 상태에서만 true로 설정됩니다. 마우스 왼쪽 버튼을 눌렀을 때 true로 설정하고 놓을 때 false로 재설정해야한다는 의미입니다. 그런 다음 플래그가 참인 경우에만 mousemove에서 작동합니다.
이것은 jQuery 특정 솔루션이 아니지만 이와 같은 문제에 대한 일반적인 패턴이므로 jQuery가 더 나은 솔루션을 제공 할 수 있습니다.
왼쪽 버튼을 누른 상태에서 입력 포커스를 잃거나 마우스 커서가 div 밖으로 나가는 것과 같은 특별한 경우를 처리해야 할 수도 있습니다.
5
여기에서 mousedown의 mousemove
이벤트를 바인드하고 mouseup
에 바인드 해제합니다. jQuery에서 멋진 기능을 사용하여이 선택기에 추가 된 다른 mousemove 이벤트가있을 수 있지만 바인딩 해제하려는 이벤트 만 제거됩니다. 그것들은 Namespaced Events입니다.
$("#yourdivid").mousedown(function(e){
if(e.which == 1){
$(this).bind('mousemove.coolnamespace', function(e){
// Your mousemove event
});
}
}).mouseup(function(e){
if(e.which == 1) $(this).unbind('mousemove.coolnamespace');
})
편집 : 정규화 된 필드 which
를 사용하는 내 대답을 업데이트. jQuery는 이것을 1 = 왼쪽, 2 = 중간, 3 = 오른쪽으로 정규화합니다. button
값은 브라우저에 따라 다릅니다.
0
mousedown 이벤트를 바인드하고 mousemove를 해당 함수 내에서 호출하고 jQuery unbind 이벤트를 사용하여 mousemove를 제거합니다.
var $button = $("ELEMENT HERE");
$button.mousedown(function(){
$(this).mousemove(function(){
//Events here
});
}).mouseup(function(){
$(this).unbind("mousemove");
});
관련 문제
- 1. 토글 이벤트에 대한 빠른 jQuery 질문
- 2. IOS에 관한 동영상에 관한 질문
- 3. if 문과 위치 이동에 관한 jQuery 질문
- 4. jQuery : 자동 완성 및 키에 관한 질문
- 5. Html 인코딩에 관한 질문
- 6. 객관적인 질문, xpath에 관한 질문
- 7. UILabel 이벤트에 대한 질문
- 8. Windows 이벤트에 대한 질문
- 9. vb.net의 이벤트에 대한 질문
- 10. DataGridView 이벤트에 대한 질문
- 11. PHP로 세션 변수에 관한 질문
- 12. 상속에 관한 질문
- 13. IOCP에 관한 질문
- 14. Lucene 채점에 관한 질문
- 15. 표시에 관한 UIDatePicker 질문
- 16. MKMapView에 관한 질문 Annotations
- 17. 대상 재활용에 관한 질문
- 18. scjp enum에 관한 질문
- 19. PHP와 Java에 관한 질문
- 20. 검색에 관한 질문
- 21. Ajax에 관한 질문
- 22. clock() 함수에 관한 질문
- 23. 데이터 압축에 관한 질문
- 24. 특성에 관한 질문
- 25. 포인터 계산에 관한 질문
- 26. parcelable 오브젝트에 관한 질문
- 27. 알파 값에 관한 질문
- 28. Quartz.net에 관한 질문
- 29. 유동체 레이아웃에 관한 질문
- 30. libmemcached 사용에 관한 질문
그냥 mousedown''에 mousemove''에 결합하고, mouseup''에 바인딩을 해제. –