Ich habe ein Problem, das mich verrückt macht und als letzten Ausweg stelle ich hier eine Frage.Move Event Handler mit jQuery
Ich möchte das Onclick-Ereignis von einem Element zum onfocus-Ereignis des gleichen Elements bewegen, und ich bin mit dem folgenden Code:
$("#theElement").bind("focus", {}, $("#theElement").data("events").click);
$("#theElement").unbind("click");
Vielleicht liegt es Sie erraten haben. ES FUNKTIONIERT NICHT.
Wie mache ich das? Ich erhalte eine „fn.apply ist keine Funktion“ Nachricht in dem folgenden Stück Code von jquery 1.3.2:
proxy: function(fn, proxy){
proxy = proxy || function(){ return fn.apply(this, arguments); };
// Set the guid of unique handler to the same of original handler, so it can be removed
proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
// So proxy can be declared as an argument
return proxy;
}
EDIT: Es tut mir leid, sollte ich erwähnt habe. Dies kommt von einem Plugin, das beim Klicken auf ein Element einige Dinge tut. Ich möchte das gleiche machen, wenn das Element nicht fokussiert wird, wenn es geklickt wird, also war die einfachste Lösung, an die ich dachte, die, weil ich den Code für das Plugin nicht ändern kann.
EDIT: Das Problem gefunden. Es ist ähnlich zu dem, was @ sje397 in seiner Antwort geschrieben, nicht
$('#theElement').data('events').click[0]
aber
$('#theElement').data('events').click[3]
Aus irgendeinem Grund, wenn auch nur ein Ereignis, das Ding endet als 3 registriert ist (die GUID, dass Stück Code von jquery).
Es funktioniert nicht, weil '.click()' ist eine Funktion, wird * bind * ein Ereignis zu einem Element. Es ist nicht der Event-Handler selbst. Jetzt überprüfe ich, was Sie tun können, um den Event-Handler aufzurufen;) – Harmen
mögliches Duplikat von [jQuery: Event-Handler entbinden, um sie später wieder zu binden] (http://stackoverflow.com/questions/516265/jquery-unbind- Event-Handler-zu-binden-sie-wieder-später) – sje397