2012-08-31 6 views
21

Wie finden Sie Ereignishandler für ein Objekt in jQuery 1.8+?jQuery 1.8 Ereignishandler finden

var func = function(){ alert(1); }; 
var obj = $('#obj'); 
obj.on("click", func); 
// obj.data('events') is undefined 
+0

scheint wie eine gute Frage, können Sie es testen auf diese Geige http://jsfiddle.net/968jj/ js – Blowsie

Antwort

30

Verwenden Sie die Datenfunktion as is done by jQuery internally.

Bei früheren Versionen konnten Sie es wie für andere Daten nennen:

obj.data('events'); 

In jQuery 1.8, this direct access was removed, so in den letzten Versionen Sie es so nennen darf:

$._data(obj[0], "events") 

können Sie Sehen Sie es in Aktion, indem Sie die Konsole in dieser Geige öffnen: http://jsfiddle.net/8TpeP/2/

+1

diese nicht funktioniert in 1.8, testen Sie es selbst hier http: // jsfiddle. net/968jj/ – Blowsie

+1

@Blowsie Ja, ich habe nach dem Test –

+1

bearbeitet Sie haben einen Link zu einem Arbeitsbeispiel? – Blowsie

5

Event-Handler eines Elements in jQuery 1.8 + zu finden, müssen Sie auf diese Weise tun:

$._data($("YOUR-SELECTOR-HERE").get(0), "events")

+3

oder kurz: '$ ._ data ($ (" YOUR-SELECTOR-HERE ") [0]," events ")' – Mohsenme