jQuery-.on('click'..)在处理动态创建的元素时,不处理现有元素
jQuery - .on('click' ... ) does not work on already existing elements while working on dynamically created ones
javascript:
$('body').on('click', '.deleteButton > a', function() {
alert('pop');
return false;
});
html:
<div class="deleteButton">
<a href="#">✖</a>
</div>
这种类型的click事件绑定在新创建的元素上运行良好(通过.clone和.prepend),但在现有元素上不起作用。
但是使用.click()代替.on()是在处理已经存在的元素,而不是在处理新创建的元素。
有没有任何方法可以将新元素和现有元素上的点击事件绑定到一行?
好吧,你可以看看小提琴JsFiddle
$('body').on('click', '.deleteButton > a', function () {});
您需要做的是将事件附加到主体,而不是类或id。这样做会将事件绑定到主体,作为回报,所有主体元素都会自动绑定到此事件。
您的代码运行良好。但是你仍然可以试试这个。它也起了作用。
$('.deleteButton > a').on('click', function () {
alert('pop');
return false;
});
使用
$(document).ready(function(){
$('body').on('click', '.deleteButton > a', function() {
alert('pop');
return false;
});
});
希望这对你有帮助。
检查此jsFiddle
相关文章:
- 如何使用jquery处理php循环通过元素
- 处理表行的当前子级,而不是名称或类的所有元素
- 在MVVM视图模型中处理应用程序范围的元素
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- stickyfloat无法处理绝对定位的元素
- SVG元素——处理和选择文本
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- jQuery on('单击',..)未处理附加的元素
- 如何使用角度事件处理程序引用输入元素的值
- d3与svg在处理元素时的对比
- 基于类附加点击处理程序,只要元素获得该类
- Meteor - 从另一个模板事件处理程序访问 DOM 元素
- stopPropagation是否还会阻止同一元素上的其他处理程序运行
- 防止通过父元素处理程序触发处理程序
- JavaScript 从表单元素处理复选框创建 URL
- 使用嵌套元素处理触摸事件
- 使用嵌套的HTML元素处理拖放
- Javascript元素处理
- AJAX表单元素处理
- 通过透明元素处理 JS 事件