jQuery focusin und focusout Live-Events werden nicht ausgelöst

jQuery Version: 1.4.1

Ich versuche, ein einfaches Plug-In für Wasserzeichen zu schreiben, und möchte die Vorteile von Live-Ereignissen nutzen, da nicht alle Elemente, auf denen ich es verwenden möchte, während des Ladens der Seite vorhanden sind oder sie dem DOM hinzugefügt und daraus entfernt werden. Aus irgendeinem Grund werden die Ereignisse jedoch nie ausgelöst.

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);

Ich kann dies zum Laufen bringen, ohne Live-Events zu verwenden. 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);

Antworten auf die Frage(6)

Ihre Antwort auf die Frage