通过点击事件绑定每个功能?

时间:2013-04-21 23:54:18

标签: jquery bind live placeholder

我已经搜索过并找到了多个答案,只是说明我的函数在一个点击处理程序中包装,虽然我希望它在页面加载时运行,或者一旦我的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" />');

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

香农

1 个答案:

答案 0 :(得分: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;
            }
        });
});