2012-12-24 7 views
9

Ich weiß, dass ich einen Handler mehrere Ereignisse mit jQuery wie Griff haben kann:Single Event-Handler für alle Veranstaltungen Javascript/jQuery

:

$('#myID').bind('blur mousedown mouseup focus', function (e) {} 

Außerdem kann ich ein Ereignis von allen Elementen mit jQuery wie registrieren

$(document).on("click", "*", function(event) { 
    console.log("Click"); 
}); 

ich habe zwei Fragen:

  1. Wie pur einen einzigen Zuhörer für mehrere Ereignisse in I registrieren e Javascript?

  2. Gibt es eine Möglichkeit, einen einzigen Handler für alle Ereignisse in einem Dokument mit JS oder jQuery zu haben, wie ein Master-Handler, der die Ereignisse an meine anderen Handler delegiert?

Ich bin auf der Suche etwas wie folgt aus:

$(document).on("*", "*", function(event) { 
    console.log("I am the master handler..."); 
    // call delegates 
}); 
+0

Auf den zweiten Frage gibt es ähnliche Frage auf SO war http://stackoverflow.com/questions/743876/list-all-javascript-events-wired-up-on-a-page-using-jquery – antyrat

+0

@antyrat Diese Frage ist über die Auflistung der registrierten Ich möchte mich für Veranstaltungen anmelden. – ATOzTOA

+0

Gibt es einen bestimmten Grund, warum Sie das tun möchten? – Undefined

Antwort

2

Dies ist der nächste i von Javascript bekommen: JSBIN-Demo

<input type="text" id="myText" /> 


var allEvents = ['focus','blur','mouseover','mousedown','mouseup','mousemove', 'click']; 

function masterHandler(){ 
    var event = event || window.event; 
    switch(event.type){ 
     case 'click': 
      console.log('cliked'); 
      break; 
     case 'mouseover': 
      console.log('mouseover'); 
      break; 
    } 
} 

function bindAllEvents(selector, handler) { 
    var elements = document.querySelectorAll(selector); 
    for(var i=0;i<elements.length;i++){ 
     for (var key in allEvents){ 
      elements[i].addEventListener(allEvents[key], handler, false); 
     } 
    } 
} 

bindAllEvents('*', masterHandler); 
+0

Das funktioniert, wenn ich nur Benutzerereignisse brauche. Aber ich möchte auch Fensterereignisse wie Fenstergröße ändern und scrollen. Ich schaute auf etwas, das bereits in jQuery verfügbar war. – ATOzTOA

Verwandte Themen