2012-12-24 19 views
9

wiem, że mogę mieć jeden obsługi obsługiwać wiele zdarzeń przy użyciu jQuery jak:pojedyncze Event Handler dla wszystkich zdarzeń JavaScript/jQuery

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

Również mogę zarejestrować zdarzenie z wszystkimi elementami jQuery jak:

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

mam dwa pytania:

  1. Jak zarejestrować pojedynczego słuchacza dla wielu wydarzeń w pur e javascript?

  2. Czy istnieje sposób na jeden przewodnik dla wszystkich zdarzeń w dokumencie za pomocą JS lub jQuery, tak jak program obsługi master, który deleguje zdarzenia do moich innych procedur obsługi?

Patrzę na coś takiego:

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

Na drugie pytanie nie było podobne pytanie na SO http://stackoverflow.com/questions/743876/list-all-javascript-events-wired-up-on-a-page-using-jquery – antyrat

+0

@antyrat To pytanie dotyczy wpisu zarejestrowanego użytkownika obsługi, chcę się zarejestrować na wydarzenia. – ATOzTOA

+0

Czy jest jakiś szczególny powód, dla którego chcesz to zrobić? – Undefined

Odpowiedz

2

Jest to najbliżej mogę dostać przez javascript: 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

Ten rodzaj działa, gdy potrzebuję tylko zdarzeń użytkownika. Ale chcę również uzyskać dostęp do zdarzeń okna, takich jak zmiana rozmiaru okna i przewijania. Szukałem czegoś już dostępnego w jquery. – ATOzTOA

Powiązane problemy