Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 是否使用单击事件绑定每个函数?_Jquery_Bind_Live_Placeholder - Fatal编程技术网

Jquery 是否使用单击事件绑定每个函数?

Jquery 是否使用单击事件绑定每个函数?,jquery,bind,live,placeholder,Jquery,Bind,Live,Placeholder,我搜索并找到了多个答案,简单地说是将我的函数包装在一个点击处理程序中,尽管我希望它在页面加载时运行,或者在javascript插入完所有html后运行 我有一个动态创建的整个页面。我正在使用这个片段修复IE的占位符。它确实有效,但不适用于实时创建的元素 $(document).ready(function(){ // Placeholder Fix for IE < 9 $("[placeholder]").each(function() {

我搜索并找到了多个答案,简单地说是将我的函数包装在一个点击处理程序中,尽管我希望它在页面加载时运行,或者在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 = "";
            }
        });
    });
});
$(文档).ready(函数(){
//IE<9的占位符修复
$(“[占位符]”)。每个(函数(){
var val=$(this.attr(“占位符”);
如果(this.value==“”){
this.value=val;
}
$(this.focus(function()){
if(this.value==val){
此值为“”;
}
}).blur(函数(){
如果($.trim(此.value)=“”){
this.value=val;
}
});
});
//清除表单提交上的默认占位符值
$('form')。提交(函数(){
$(this).find(“[占位符]”).each(函数(){
if(this.value=$(this.attr(“占位符”)){
此值为“”;
}
});
});
});
我正在使用js添加表单元素,例如:

$('body').append('<input type="text" placeholder="placeholdertext" />');
$('body')。追加(“”);
有人能建议如何解决这个问题吗


香农这就是你要找的吗

on()函数将处理程序应用于页面上适合选择器的所有元素,而不仅仅是特定元素(如.focus和.blur) 更多信息请点击此处:


当你说动态创建。。你指的是服务器还是js?如果for循环运行时目标元素还不在dom中,那么它显然无法工作。如果要在JS中动态添加文本输入,请使用('focus','',function(e){/*stuff here*/})每当您添加带有
占位符
属性的新元素时,都需要为这些新元素运行代码。提供示例代码,用于为模糊添加相同的新元素,并在创建控件时设置控件值
on
等同于
live
还要注意的是,您不仅仅是为IE运行此代码,而是为所有浏览器运行此代码。使用功能检测仅在不支持占位符的浏览器上运行。有很多插件已经开发完成了这个脚本在它的js文件中,包装在一个html if语句中,它只包含在IE中,是的,我用javascript包含表单元素,我不想用像blur这样的事件绑定这个函数,或焦点,因为我希望在用户使用任何表单字段之前运行脚本。正如我提到的,它替换了占位符属性,因此我显然不希望在用户单击字段时构建它。谢谢你!不,我正在寻找一种解决方案,在没有事件的情况下运行上述函数,以便在页面加载时调用它。
$(this).on("focus", function() {
            if ( this.value == val ) {
                this.value = "";
            }
        }).on("blur", (function() {
            if ( $.trim(this.value) === "" ) {
                this.value = val;
            }
        });
});