克隆select元素并递增“name”属性后,我无法选择克隆的元素。
例如:
HTML
<select name="1"></select>
<select name="1-1"></select> <!-- cloned element -->
<select name="1-2"></select> <!-- cloned element -->
JS
$('[name^="1"]').change(function() {
alert(1);
});
当我更改原始元素时,它可以正常工作我得到警报,但是当我更改其中一个克隆元素时,没有任何反应。没有错误。
注意:我使用“name”属性而不是ID,因为我需要在提交表单后检索这些克隆的元素值
这应该有用吗?还是克隆元素不能被选中?
答案 0 :(得分:3)
以下是live() DOC 的文档链接,这里是delegate() DOC
的文档链接$('[name^=1]').live('change', function(){
console.log('hi!');
});
虽然它的功能与常规事件处理程序不同(它实际上是在监听文档上的事件,所以它在传播时“处理”事件。委托更高效,因为你给它一个上下文来监听:
$('form').delegate('select[name^=1]', 'change', function(){
console.log('hi there!');
});