Javascript 动态添加的输入框为';动态绑定
我正在使用在document.ready上调用的Jquery输入现代化器函数,该函数来自以下链接: 在我的JavaScript代码中,我向DOM添加了两个输入框。如何动态绑定这些输入对象,使其显示与文档准备就绪时存在的输入框相同的功能Javascript 动态添加的输入框为';动态绑定,javascript,jquery,html,css,input,Javascript,Jquery,Html,Css,Input,我正在使用在document.ready上调用的Jquery输入现代化器函数,该函数来自以下链接: 在我的JavaScript代码中,我向DOM添加了两个输入框。如何动态绑定这些输入对象,使其显示与文档准备就绪时存在的输入框相同的功能 var add= '<input type="text" size="75" placeholder="This is a Comment" id="txtComment" />' + '<br /><input type="tex
var add= '<input type="text" size="75" placeholder="This is a Comment" id="txtComment" />'
+ '<br /><input type="text" placeholder="2012-03-24" id="txtDate" /><br /><button id="submit">Submit</button>';
$(this).html(addTargetForm);
function modernizer_init() {
if (!Modernizr.input.placeholder) {
$('[placeholder]').onfocus(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function () {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur();
$('[placeholder]').parents('form').submit(function () {
$(this).find('[placeholder]').each(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});
}
}
var add=''
+“
提交”;
$(this.html(addTargetForm);
函数现代化器_init(){
if(!modernizer.input.placeholder){
$(“[placeholder]”)。onfocus(函数(){
var输入=$(此);
if(input.val()==input.attr('placeholder')){
input.val(“”);
input.removeClass('placeholder');
}
}).blur(函数(){
var输入=$(此);
if(input.val()=''| input.val()==input.attr('placeholder')){
input.addClass(“占位符”);
val(input.attr(‘占位符’);
}
}).blur();
$(“[占位符]”)。父项('form')。提交(函数(){
$(this).find(“[占位符]”).each(函数(){
var输入=$(此);
if(input.val()==input.attr('placeholder')){
input.val(“”);
}
})
});
}
}
这应该直接在$(function(){…})
结构中工作,但如果应用程序需要的话,一定要将它放在函数现代化器{u init(){}
中
javascript:
$("body").on('focusin', '[placeholder]', function(evt) {
var $input = $(evt.target);
if ($input.val() == $input.attr('placeholder')) {
$input.val('');
$input.removeClass('placeholder');
}
}).on('focusout', '[placeholder]', function(evt) {
var $input = $(evt.target);
if ($input.val() == '' || $input.val() == $input.attr('placeholder')) {
$input.addClass('placeholder');
$input.val($input.attr('placeholder'));
}
}).on('submit', 'form', function(evt) {
var $form = $(evt.target);
$form.find('[placeholder]').each(function() {
var $input = $(this);
if ($input.val() == $input.attr('placeholder')) {
$input.val('');
}
});
});
$('[placeholder]').focusout();
这是通过将focusin(焦点)和focusout(模糊)事件的处理委托给文档正文(或者更本地的容器,如果您愿意的话),这是jQuery 1.7.1实现现在不推荐的bind()
、.live()
和.delegate()
的方法
查看它是否正常工作:请给出绑定原始功能的代码。请发布绑定代码。您使用的是什么版本的jQuery?我自己还没有弄清楚,但有时我确实注意到,当我在动态放置的元素上使用jQuery.bind()时,有时bind()无法正常工作,而live()则无法正常工作。我知道它与DOM交互以及什么时候看什么有关。但是如果bind()不起作用,请尝试live()。但是我也同意Eli的观点,你应该发布你的代码,将你的元素事件“绑定”到你的代码中。