0

我已经搜索并找到了多个答案,只是说明将我的函数包装在点击处理程序中,尽管我希望它在页面加载时运行,或者在我的 javascript 完成插入所有 html 后运行。

我有一个动态创建的整个页面。我正在使用这个片段来修复 IE 的占位符。它确实有效,但不适用于实时创建的元素。

$(document).ready(function(){    
    // Placeholder Fix for IE < 9    
    $("[placeholder]").each(function() {        
        var val = $(this).attr("placeholder");
        if ( this.value === "" ) {
            this.value = val;
        }
        $(this).focus(function() {
            if ( this.value == val ) {
                this.value = "";
            }
        }).blur(function() {
            if ( $.trim(this.value) === "" ) {
                this.value = val;
            }
        });
    });
    // Clear default placeholder values on form submit
    $('form').submit(function() {
        $(this).find("[placeholder]").each(function() {
            if ( this.value == $(this).attr("placeholder") ) {
                this.value = "";
            }
        });
    });
});

我正在用js添加表单元素,例如:

$('body').append('<input type="text" placeholder="placeholdertext" />');

有人可以建议如何解决这个问题吗?

香农

4

1 回答 1

0

这是你要找的吗?

on() 函数将处理程序应用于页面上适合选择器的所有元素,而不仅仅是特定元素(如 .focus 和 .blur)更多信息在这里:http ://api.jquery.com/on/

$(this).on("focus", function() {
            if ( this.value == val ) {
                this.value = "";
            }
        }).on("blur", (function() {
            if ( $.trim(this.value) === "" ) {
                this.value = val;
            }
        });
});
于 2013-04-22T02:38:49.990 回答