我正在尝试在循环中克隆Select with is handler,
但处理程序仅在最后一次迭代中绑定到克隆。
这是选择
的html<select class="userType" id="<?...?>">
<option>o1</option>
<option>o2</option>
<option selected>o3</option>
</select>
这是JS
var userType = $('.userType');
userType.change(function(){
console.log(1);
});
$('#okBtn').click(function(){
// obj.data is Json getting from ajax result.
var selectRaw = $(userType).first();
searchResult.html('');
for(var value in obj.data){
searchResult.html(searchResult.html()+'<div id="userResult'+obj.data[value].id+'">'+obj.data[value].name+' - '+obj.data[value].email+' </div>');
selectRaw.clone(true, true).appendTo('#userResult'+obj.data[value].id).attr('id', obj.data[value].id).children().attr('selected', false);
}
});
答案 0 :(得分:1)
好的,这很奇怪。我改变了在克隆之前插入div的方法,它现在可以正常工作了!
我从.html()更改它:
searchResult.html(searchResult.html()+'<div id="userResult'+obj.data[value].id+'">'+obj.data[value].name+' - '+obj.data[value].email+' </div>');
追加()。
searchResult.append('<div id="userResult'+obj.data[value].id+'">'+obj.data[value].name+' - '+obj.data[value].email+' </div>');
有人可以为此得到合乎逻辑的解释吗?