我想通过jquery事件向li
添加一个custum ol
,
这是我的代码
success: function(data) {
if (data != ''){
$ulSub = $("#firstList");
$("#Pushtype_destinationList").val(crit1);
$.each(data.dataa, function (i,item) {
$str="";
for(var key in item){ if(key != 'id'){$str+= item[key]} }
$ulSub.append( '<li class="ui-widget-content " id="'+item.id +'" >' +$str+'</li>');
});
}
}
我的html代码如下:
<ol class="selected" id="firstList">
<li class="ui-widget-content ">text 1</li>
<li class="ui-widget-content ">text 2</li>
</ol>
和从第一个ol到第二个ol添加元素li的函数jquery为
jQuery('ol#firstList li').click(function() {
$(this).toggleClass('selected');
$('#result').html($('#firstList .selected').clone())
});
到目前为止,每件事情都很有效,但是当我通过使用此函数来动态添加新元素时
( `for(var key in item){ if(key != 'id'){$str+= item[key]} }
$ulSub.append( '<li class="ui-widget-content " id="'+item.id +'" >' +$str+'</li>');
});)
此元素无法添加到第二个<ol id="result>
正如你在这里看到的那样,当我在clic上添加元素text1和text2时,但动态添加的其他元素不是
任何帮助,请
答案 0 :(得分:4)
之所以发生这种情况,是因为在事件处理程序分配代码运行时,您只将事件处理程序分配给DOM中已存在的项目。
尝试:
jQuery(document).on('click', 'ol#firstList li', function() {
$(this).toggleClass('selected');
$('#result').html($('#firstList .selected').clone())
});
查看“.on”的jQuery文档以获取更多详细信息。
答案 1 :(得分:0)
在每个循环之前清除html,如
$ulSub.html('');
PUT同伴代码
success: function(data) {
if (data != ''){
$ulSub = $("#firstList");
$("#Pushtype_destinationList").val(crit1);
$ulSub.html('');
$.each(data.dataa, function (i,item) {
$str="";
for(var key in item){ if(key != 'id'){$str+= item[key]} }
$ulSub.append( '<li class="ui-widget-content " id="'+item.id +'" >' +$str+'</li>');
});
}
}