我的问题:重新绘制激活这些处理程序的HTML元素后,单击处理程序无法正常工作。
我有一个父div,其中包含可通过jquery的.sortable()方法排序的子div列表。这些div具有各种点击处理程序,可以执行各种操作。
jsfiddle:http://jsfiddle.net/GA4Qs/805/
首先,我收集父div中的所有html
var original_order = $('#sortable_groups').html()
然后在取消时,将HTML恢复为原始状态
$('#cancel').click(function() {
$('#sortable_groups').empty().html(original_order);
});
重绘工作与我想要的完全一样,但在我取消并重新绘制html后,点击处理程序无法正常工作。
在深入挖掘SO之后,我发现了一些关于“直播”事件的过时帖子,这些事件已合并到.on('click')事件中。我更新了代码以使用.on()处理程序而不是.click(),遗憾的是这并没有解决问题。
我的上述小提琴简化了(但显示)我遇到的问题。如果单击粗体文本,则会显示完整性警报。点击“取消”后,通过点击触发的健全警报不再出现。
我有一种感觉,这个问题很可能是我对Jquery的某些方面的误解,但是因为一切似乎最初都运行良好并且控制台中没有错误,我不确定下一步该尝试什么。
答案 0 :(得分:1)
用于委托动态元素
$('#sortable_groups').on('click', '.dg_acc_div' , function(e){
window.alert($(this).html())
});