2014-12-04 3 views
1

매우 다양한 장치로 유니버설 리스너를 만드는 것이 유용 할 것이라고 생각한 많은 다른 것들을 수행했습니다. This 내 간단한 시도, 물론, 작동하지 않을 수 있습니다. 그러나 그것은 단지 실제 해결책을 오는에 사람을 자극 할 수있다 : - 또는사용자가 모든 이벤트를 식별 할 수있는 방법

$("#allEvents").on("*", function(evnt) { 
    console.log(evnt.type); 
}); 

<div id="allEvents"> 
    this is some text inside div allEvents 
</div> 

, 그들의 장치에서 어떤 일을 할 때 해고 어떤 이벤트 사용자를 알 수 있습니다 거기에 뭔가가있다?

+0

가능 중복 된 [I는 DOM 요소의 모든 이벤트를 결합 할 수 있는가? (http://stackoverflow.com/questions/5848598/how-can-i-bind-all-events-on-a -dom-element) – Antony

+0

나는 @Antony를보고 있지만 지금까지는 제대로 작동하지 않는다. 나는 명백하게 무언가를 놓치고있다. – cneeds

답변

0

가장 가까운 브라우저는 브라우저에서 지원하는 모든 이벤트를 가져 와서 배열에 넣은 다음 바인딩하여 event.type을 확인하십시오. 이를 위해 을 사용하여 document의 키를 얻은 다음 필터를 제거하여 이벤트 만 포함시키고 "on"접두어를 제거합니다.

이제 우리는 Array.join(" ")과 결합 할 수있는 "on"접두사가없는 브라우저에서 지원되는 이벤트 배열을 얻었습니다. 그런 다음 e을 사용하여 이벤트 유형을 검사 할 수 있습니다.

var arr = Object.keys(document).filter(function(x) { 
    return x.indexOf("on") == 0 
}).map(function(x) { 
    return x.replace("on", ""); 
}); 
$('#allEvents').on(arr.join(" "), function(e) { 
    console.log(e.type); 
}); 
+0

이것은 각각의 (그리고 모든) 브라우저가 지원하는 이벤트를 알고 있다고 가정한다. 내가 모르는 POV에서 나오기를 바랐다. (모든 브라우저와 그것이 지원하는 모든 플랫폼에 대한 문서를 읽는 것 외에) 어떻게 찾을 수 있습니까? – cneeds

+0

@ POn은 무엇입니까? –

+0

시점 @Amit, 실례합니다 – cneeds

관련 문제