내가 jQuery를에 live()
기능의 이상한 행동을 발견했습니다 : "라이브"에 마우스 오른쪽 버튼으로 클릭 할 때까지 벌금과 멋쟁이의jQuery를이에 대한 발사를 ('클릭') 살 마우스 오른쪽 단추로 클릭
<a href="#" id="normal">normal</a>
<a href="#" id="live">live</a>
$('#normal').click(clickHandler);
$('#live').live('click', clickHandler);
function clickHandler() {
alert("Clicked");
return false;
}
을 링크를 클릭하면 처리기가 실행되고 컨텍스트 메뉴가 표시되지 않습니다. 이벤트 핸들러가 "정상"링크에서 예상대로 실행되지 않습니다.
나는이에 핸들러를 변경하여 해결 할 수있었습니다 :
function clickHandler(e) {
if (e.button != 0) return true;
// normal handler code here
return false;
}
하지만 그 모든 이벤트 핸들러에 그것을 추가 할 필요가 정말 짜증나. 이벤트 처리기를 일반 클릭 핸들러 처럼만 사게하는 더 좋은 방법이 있습니까?
앞으로 어떻게 질문하나요? – PetersenDidIt
여기에 귀하의 해결 방법을 보게되어 매우 기뻤습니다. 즉시이 도구를 내 응용 프로그램에서 시도해 보았습니다. 현재 마우스 오른쪽 버튼으로 클릭하고있는 링크를 잡아서 무시할 수는 있지만 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴가 표시되지 않습니다. 이들. 또한 마우스 가운데 버튼 클릭 (새 탭에서 열림)도 작동하지 않습니다. 그러나 적어도 핸들러는 일찍 돌아올 수 있습니다! – Funka
사실, 마우스 오른쪽 버튼을 반복해서 빠르게 누르면, 가끔 상황에 맞는 메뉴가 나타나기도합니다. 흠. – Funka