我需要为click
未来<div>
元素的事件添加一个处理程序,它还不存在.通常情况下,我会使用jQuery的.live
函数来处理这个问题,但它现在似乎已被弃用了.on
.
要.on
以这种方式使用该方法,jQuery建议设置selector参数,以允许创建委托事件,并提供此示例代码:
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但是我为他的初始选择器添加了#dataTable tbody
什么呢?请注意,$.on()
这不起作用.
wrs*_*der 280
jQuery的文档显示你会替换
$(selector).live(event, handler)
Run Code Online (Sandbox Code Playgroud)
同
$(document).on(event, selector, handler)
Run Code Online (Sandbox Code Playgroud)
您还可以选择更精确,并$(document)
使用选择器替换元素的静态父级.例如,如果你有一个静态table
元素并且tr
元素被动态添加到DOM,你可以做类似的事情$('table#id').on('click', 'tr', ...)
Bra*_*rad 35
我刚发布这个问题时就知道了......对不起!
初始选择器可以是任何父元素.由于我的元素将是身体的直接孩子,我可以body
用于选择器:
$('body').on('click', '.my_class', function(event) { ...
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为事件将会起泡.这基本上是正常的鼓泡,带有额外的过滤器.my_class
.