[JQUERY] 이벤트가 인간에 의해 촉발되어 있는지 확인
JQUERY이벤트가 인간에 의해 촉발되어 있는지 확인
해결법
-
1.당신은 e.originalEvent을 확인할 수 있습니다 :이 정의되어있는 경우 클릭이 인간 :
당신은 e.originalEvent을 확인할 수 있습니다 :이 정의되어있는 경우 클릭이 인간 :
바이올린 http://jsfiddle.net/Uf8Wv/ 봐
$('.checkbox').change(function(e){ if (e.originalEvent !== undefined) { alert ('human'); } });
바이올린 내 예 :
<input type='checkbox' id='try' >try <button id='click'>Click</button> $("#try").click(function(event) { if (event.originalEvent === undefined) { alert('not human') } else { alert(' human'); } }); $('#click').click(function(event) { $("#try").click(); });
-
2.더 정직 할 것 위의 것보다 :
더 정직 할 것 위의 것보다 :
$('.checkbox').change(function(e){ if (e.isTrigger) { alert ('not a human'); } }); $('.checkbox').trigger('change'); //doesn't alert
-
3.나는이 작업을 수행 할 수있는 유일한 방법은 문서에 따라 트리거 호출에 추가 매개 변수를 전달하는 것이라고 생각합니다.
나는이 작업을 수행 할 수있는 유일한 방법은 문서에 따라 트리거 호출에 추가 매개 변수를 전달하는 것이라고 생각합니다.
$('.checkbox').change(function(e, isTriggered){ if (!isTriggered) { alert ('human'); } }); $('.checkbox').trigger('change', [true]); //doesn't alert
예 : http://jsfiddle.net/wG2KY/
-
4.허용 대답은 나를 위해 작동하지 않았다. 그것은 6 년이되었습니다 그리고 jQuery를 그 이후 많이 바뀌 었습니다.
허용 대답은 나를 위해 작동하지 않았다. 그것은 6 년이되었습니다 그리고 jQuery를 그 이후 많이 바뀌 었습니다.
예를 들어 event.originalEvent이의 jQuery 1.9.x. 항상 true를 반환 나는 평균 객체는 항상 존재하지만 내용이 다르다.
jQuery를 최신 버전을 사용하는 사람들은이 일을 시도 할 수 있습니다. 크롬, 에지, IE, 오페라, FF에 작품
if ((event.originalEvent.isTrusted === true && event.originalEvent.isPrimary === undefined) || event.originalEvent.isPrimary === true) { //Hey hooman it is you }
-
5.현재 대부분의 브라우저는 event.isTrusted 지원 :
현재 대부분의 브라우저는 event.isTrusted 지원 :
if (e.isTrusted) { /* The event is trusted: event was generated by a user action */ } else { /* The event is not trusted */ }
문서에서 :
-
6.모든 코드의 제어를 못했을 경우에 대비, 어떤 외계인 setFocus void 현재보다 $ (입력) .focus ()를 호출하지 않습니다 ().
모든 코드의 제어를 못했을 경우에 대비, 어떤 외계인 setFocus void 현재보다 $ (입력) .focus ()를 호출하지 않습니다 ().
글로벌 변수를 사용하는 것은 나를 위해 올바른 방법입니다.
var globalIsHuman = true; $('input').on('focus', function (){ if(globalIsHuman){ console.log('hello human, come and give me a hug'); }else{ console.log('alien, get away, i hate you..'); } globalIsHuman = true; }); // alien set focus function setFocus(){ globalIsHuman = false; $('input').focus(); } // human use mouse, finger, foot... whatever to touch the input
일부 외국인은 또 다른 행성에서 $를 (입력) .focus ()를 호출합니다. 행운을 빕니다 또는 다른 답변을 확인
-
7.당신은 트리거 () 호출 대 마우스 클릭을 감지하면 onMouseDown 사용할 수 있습니다.
당신은 트리거 () 호출 대 마우스 클릭을 감지하면 onMouseDown 사용할 수 있습니다.
-
8.난 당신처럼 마우스 위치를 확인 가능성에 대해 생각하는 것입니다 :
난 당신처럼 마우스 위치를 확인 가능성에 대해 생각하는 것입니다 :
from https://stackoverflow.com/questions/6692031/check-if-event-is-triggered-by-a-human by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery를 라디오에 따라 사용 안 함 옵션을 선택합니다 (모든 브라우저에 대한 필요 지원) 선택 (0) | 2020.10.21 |
---|---|
[JQUERY] 어떻게 JQuery와 - 직렬화 된 형식을 PHP는-를 unserialize합니까? (0) | 2020.10.21 |
[JQUERY] 리스너에 (JQuery와없이) 여러 이벤트 바인딩? (0) | 2020.10.21 |
[JQUERY] URL 인코딩 AJAX를 요청 jQuery를 문자열 (0) | 2020.10.21 |
[JQUERY] jQuery의 .bind () 대 CSTE 연구진은 () (0) | 2020.10.21 |