html重绘后,Jquery函数无法正常工作

时间:2016-08-25 14:28:22

标签: jquery jquery-ui

我的问题:重新绘制激活这些处理程序的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的某些方面的误解,但是因为一切似乎最初都运行良好并且控制台中没有错误,我不确定下一步该尝试什么。

1 个答案:

答案 0 :(得分:1)

用于委托动态元素

$('#sortable_groups').on('click', '.dg_acc_div' , function(e){ 
        window.alert($(this).html())
});

小提琴:http://jsfiddle.net/GA4Qs/807/