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

Schreibe einen Kommentar