jQuery focusin-und focusout-live-events werden nicht gefeuert
jQuery Version: 1.4.1
Ich bin versucht zu schreiben, ein einfaches Wasserzeichen Typ plugin und ich möchte, um die Vorteile von live-Veranstaltungen, da nicht alle Elemente die ich brauche, es zu benutzen auf existieren wird, während die Seite geladen werden, oder Sie können Hinzugefügt werden und aus dem DOM entfernt. Jedoch für einige Grund die Ereignisse nie Feuer.
Hier ist der nicht funktionierende code:
; (function($) {
$.fn.watermark = function(text) {
return $(this).each(function() {
$(this).live('focusout', function() {
if (this.value == "") {
this.value = text;
}
return false;
});
$(this).live('focusin', function() {
if (this.value == text) {
this.value = "";
}
return false;
});
});
}
})(jQuery);
Bekomme ich diese zu arbeiten, ohne Verwendung von live-events. Dieser code funktioniert:
; (function($) {
$.fn.watermark = function(text) {
return $(this).each(function() {
$(this).focusout(function() {
if (this.value == "") {
this.value = text;
}
return false;
});
$(this).focusin(function() {
if (this.value == text) {
this.value = "";
}
return false;
});
});
}
})(jQuery);
InformationsquelleAutor Corey Sunwold | 2010-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
.live()
muss ein Selektor, der nicht ein DOM-element, an der Stelle, die Sie aufrufen, es ist nur auf ein DOM-element, so dass anstelle von:Versuchen, diese (
this
ist schon ein jQuery-Objekt):Braucht es diese denn, wie
.live()
funktioniert, wenn ein Ereignis Blasen bis zudocument
es prüft, ob selector...wenn es keinen Selektor, es gibt keine Möglichkeit für Sie zu prüfen. Auch, wenn Sie ein DOM-element und der event handler für nur es,.live()
würde nicht viel Sinn sowieso 🙂$(this).each
sollte ersetzt werden durchthis.each
aus den gleichen Gründen.Er eigentlich nicht braucht, die
.each()
überhaupt, nur angekettet Selektoren 🙂Etwas scheint nicht richtig hier. Ich dachte man sollte immer wieder zurück.jeder? Siehe: stackoverflow.com/questions/2678185/...
Nie Verstand Nick, ich sehen, was Los jetzt. Danke.
InformationsquelleAutor Nick Craver
Werfen Sie einen Blick hier.
Simulation von "focus" und "blur" in jQuery .live () - Methode
InformationsquelleAutor RobertPitt