通过更改HTML元素上的动态类名来处理事件列表器
Handling event listerners with changing dynamic classname on HTML element?
我有几个动态生成的HTML元素,每个元素都使用自己的动态id作为类名。我将事件侦听器连接到这些元素上,如下所示:
$(document).on("click", ".id_" + dynamic_id , clickCallback);
问题是动态id可以通过ajax成功调用进行更改,并且相应的HTML元素更新如下:
$(".id_" + old_dynamic_id).attr("class", new_dynamic_id);
此更改将使以前附加的事件侦听器丢失,因为它不知道HTML元素现在有一个已分配的新id。
什么是干净的处理方式?我可以在ajax成功函数中重新附加事件侦听器,但这并不理想,因为将有两个地方存在相同的事件侦听器代码:创建元素时和ajax成功函数内。
你可以试试这个:
$(document).on("click", "[class^='id_']", clickCallback);
这似乎有效:
$(".link").on("click", function() {
alert("yes");
});
$(".link").attr("class", "new-class");
即事件是否直接附加到元素。
http://jsfiddle.net/5ru2W/
相关文章:
- AngularJS ng重复处理空列表事例
- 如何通过bxSlider回调api处理事件
- 将事件列表滚动到给定月份的第一个事件
- 在Kinetic.js中通过多层处理事件
- 使用自定义数据属性或将数据绑定到处理程序来处理事件
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- HTML5拖放;Drop-使用jQuery处理事件
- 处理html列表中的javascript对象
- 如何查找触发或处理事件的 Javascript
- 在 Web 应用中处理事件跟踪的最佳(高性能)方法
- javascript事件处理程序列表
- Dojo表单处理事件
- 如何从加载的JSON文件构建外部事件列表
- CSS Javascript在1 onClick上处理2事件
- 有没有一种方法可以在没有jQuery的情况下获得JavaScript中当前添加到后台的事件列表
- 如何在父视图中绑定子视图处理事件的上下文
- 通过更改HTML元素上的动态类名来处理事件列表器
- 如何在三星智能电视中使用按钮处理事件
- 如何获取表单处理事件
- 如何使用 Web 应用处理事件