jQuery触发了新添加的html代码
例如,我有2个html输入jQuery触发了新添加的html代码,jquery,html,jquery-ui,autocomplete,Jquery,Html,Jquery Ui,Autocomplete,例如,我有2个html输入 <div class="wrap"> <input class="autocomplete" name="auto_1" /> <input class="autocomplete" name="auto_2" /> </div> 但是自动完成功能没有在auto_3上运行,因为它是新添加的 如何使其运行/使用自动完成?使用.on(): 使用.on()方法,您可以将单击处理程序委托给将添加到D
<div class="wrap">
<input class="autocomplete" name="auto_1" />
<input class="autocomplete" name="auto_2" />
</div>
但是自动完成功能没有在auto_3
上运行,因为它是新添加的
如何使其运行/使用自动完成?使用.on()
:
使用.on()
方法,您可以将单击处理程序委托给将添加到DOM中的现有和未来元素,例如(新)弃用的(来自jQ 1.7).live()
从文档中:
$("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+
我认为问题不在于单击新输入,而在于自动完成新输入。当您使用添加新元素时
$('.wrap').append('<input class="autocomplete" name="auto_3" />')
或者像RPM所说的那样,使用livequery插件自动完成。您肯定使用了一个过时的jQ v.i,使用了最新的更新,函数
.on()
正在为自动1
和自动2
工作,但不是在自动3
@RPM no,打开。
允许您委派您的元素,因此它是一个更好的替代。
$("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+
$('.wrap').append('<input class="autocomplete" name="auto_3" />')
$('input[name="auto_3"]').autocomplete();