2012-02-26 4 views
1

안녕하세요 저는 왼쪽 마우스를 누르고 끌면 기능을 실행하려고합니다.jquery 코드가 크롬에서는 작동하지만 파이어 폭스 또는 사파리에서는 작동하지 않습니다.

내가 다음 코드에 어떤 문제가 있는지 알아낼 수 없습니다 파이어 폭스 크롬이 아니라에서 예상하고있는 무엇이든 관계없이 마우스 오버의 코드를 실행 사파리로 코드가 작동

var leftbuttondown = false; 
$("#tiles p").live("mousedown mouseover", function (e) { 
(e.which === 1) ? leftbuttondown = true : leftbuttondown = false ; 
if(leftbuttondown === true){ 
updateMap(this); 
} 
}); 

눌렀다.

http://api.jquery.com/event.which/

:

는 나 또한

내가 여기에 체크 한 ... 크롬에서가 아니라 파이어 폭스 나 사파리에서 예상대로 다음

$("#tiles p").live("mousedown mouseover", function (e) { 
if(e.which === 1){ 
updateMap(this); 
} 
}); 

다시 작동 시도 각 브라우저의 마우스 왼쪽 버튼은 = 1

입니다.

나를 좌절시키기 시작하는 그 어떤 도움도 끝내지 않을 것입니다.

+0

왜 두 개의 이벤트 바인딩으로 분할 할 수 없습니까? 또한'live' 대신'delegate' 또는'on'을 사용하십시오. – meze

+0

live가 사용되는 이유는 바인딩에 적용되는 요소가 즉시 생성되기 때문입니다. 바인딩을 분리하려면 mouseup의 세 번째 바인딩이 필요합니다. 가능한 한 적은 수의 라인에서 처리하려고했는데, 크롬에서 예상했던대로 작동합니다. 사파리 또는 파이어 폭스에서 왜 작동하지 않는지 궁금해했습니다. 바인딩을 분리하면 모든 브라우저에서 작동하지만 약간의 버그가있을 수 있습니다. – rickstain

+0

이벤트의 가치를 확인 했습니까? 'console.log (event.which)'를 삽입하고 여기에 결과를 게시하십시오. – iappwebdev

답변

0

버튼을 누르지 않아도 firefox가 e.which를 1로 설정 한 것으로 보입니다.

Demo

관련 문제