由动态生成的元素触发的事件不会被事件处理程序捕获。我有一个<div>带着id="modal"使用jQuery动态生成load()方法:$('#modal').load('handlers/word.edit.php');word.edit.php包含几个输入元素,这些元素被加载到一个模态中。<div>.使用jQuery的keyup方法可以在事件触发后捕获输入值,但当元素动态添加到模式div时,当用户输入其文本时,事件不再触发。哪种jQuery方法支持处理由动态创建的元素触发的事件?创建新输入元素的代码是:$('#add').click(function() {
$('<input id="'+i+'" type="text" name="translations' + i + '" />')
.appendTo('#modal');捕获用户值的代码是:$('input').keyup(function() {
handler = $(this).val();
name = $(this).attr('name');第二个代码块似乎适用于原始元素,但它不是由新动态生成的元素触发的。
4 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
.on
.delegate
// If version 1.7 or above$('#modal').on('keyup', 'input', function() { handler = $(this).val(); name = $(this).attr('name');});
// If version 1.6 or below// note the selector and event are in a different order than above$('#modal').delegate('input', 'keyup', function(){ handler = $(this).val(); name = $(this).attr('name');});
开满天机
TA贡献1786条经验 获得超13个赞
$("<parentSelector>").on("keyup", "input", function() { handler = $(this).val(); name = $(this).attr('name');})
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
$ ("p"). live ("click", function () { // Your function});
添加回答
举报
0/150
提交
取消