>  기사  >  웹 프론트엔드  >  jQuery 파트 7을 읽어보세요. 어떤 마우스 버튼이 클릭되었는지 확인하는 코드_jquery

jQuery 파트 7을 읽어보세요. 어떤 마우스 버튼이 클릭되었는지 확인하는 코드_jquery

WBOY
WBOY원래의
2016-05-16 18:05:391244검색

jQuery는 which를 선호하여 표준 button 속성을 ​​삭제했는데, 이는 다소 수수께끼입니다.

Firefox에서 도입되었으며 IE에서는 지원되지 않습니다. 원래 의도는 키보드의 키 값(keyCode)을 얻는 것입니다.

jQuery에서는 키보드의 키 값이 될 수도 있고 마우스의 키 값이 될 수도 있습니다.
즉, 사용자가 키보드의 어떤 키를 눌렀는지 확인할 때 사용할 수 있고, 마우스의 어떤 키를 눌렀는지 확인할 때도 사용할 수 있습니다. 그것은 두 가지 목적으로 사용됩니다.
소스 코드

코드 복사 코드는 다음과 같습니다.

// 추가할 항목 주요 이벤트의 경우
if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
event.which = event.charCode != null event.charCode : event.keyCode ;
}

// 클릭할 항목을 추가하세요: 1 === left; 2 === middle; 3 === right
// 참고: 버튼은 정규화되지 않았습니다. , 그러니 사용하지 마세요
if ( !event.which && event.button !== undefine ) {
event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
}

표준 버튼은 0,1,2를 사용하여 마우스 왼쪽, 가운데, 오른쪽 버튼을 나타냅니다. 1,2,3을 사용하는 jQuery입니다.

또 다른 불편한 점은 jQuery 문서 event.which에는 마우스 버튼 값을 나타낼 수 있는 항목이 언급되지 않고 키보드 버튼 값만 언급되어 있다는 점입니다.

소스코드의 주석도 오해의 소지가 있습니다.
코드 복사 코드는 다음과 같습니다.

// 클릭에 대한 추가: 1 = == 왼쪽 ; 2 === 중간; 3 === 오른쪽

참고로 사람들이 클릭 이벤트를 사용하기는 쉽지만 실제로는 클릭을 획득합니다. 이벤트가 잘못되었습니다.
아래 클릭 이벤트를 사용해 보세요:
코드 복사 코드는 다음과 같습니다.

< ;!DOCTYPE html>




본문>






클릭 이벤트를 사용하면 jQuery가 상상한 대로 왼쪽, 가운데, 오른쪽 키에 대한 1, 2, 3 값이 대응되지 않는 것을 알 수 있습니다. 브라우저마다 일관성이 없고 우클릭도 전혀 안되고 사파리에서는 계속 경고가 뜹니다.
测试结果
IE6/7/8 IE9 Firefox4 Chrome12 Safari Opera
点击左键 0 1 1 1 1(不停弹出alert) 1
点击中键 不响应 2 2 2 2(不停弹出alert) 不响应
点击右键 仅弹出右键菜单 仅弹出右键菜单 3,弹出右键菜单 仅弹出右键菜单 仅弹出右键菜单 仅弹出右键菜单
따라서 jQuery의 비전을 달성하려면 mousedown / mouseup 이벤트를 사용해야 합니다. jQuery의 설명은 오해의 소지가 있습니다.

또한, mousedown/mouseup 이벤트를 사용해도 Opera에서는 가운데 버튼의 값을 얻을 수 없습니다. Opera의 역겨운 관행은 jQuery를 무력하게 만듭니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.