我正在尝试使用 jQuery 绑定一个事件来引导容器元素的子元素.on()
。看来我不能用“>”开始选择器,那么这里形成选择器字符串的正确方法是什么?
<div id="#parent">
<div id="#unknown_id"><!-- Event should be run if triggered here -->
<div id="#another_unknown_id"><!-- But not here --></div>
</div>
<div id="#one_more_unknown_id"><!-- Event should be run if triggered here -->
<div>...</div>
</div>
</div>
<script type="text/javascript>">
$('#parent').on('custom_event', 'div', function(e) {
alert('Now triggerer custom_event on #unknown_id');
});
$('#unknown_id').trigger('custom_event'); // This should trigger an alert
$('#one_more_unknown_id').trigger('custom_event'); // ... this should too
$('#another_unknown_id').trigger('custom_event'); // This should NOT do anything
</script>
我可以做
$('#parent > div').on('custom_event', function(e) { });
但不幸的是,内容#parent
是使用 AJAX 异步加载的,并且文档中.on()
说元素在被调用时应该存在.on()
(直接事件)。
委托事件的优点是它们可以处理来自以后添加到文档的后代元素的事件。
折腾后更新。似乎这>
不适用于 jQuery 1.7.2,但从 1.8 开始就可以了。请参阅下面接受的答案:https ://stackoverflow.com/a/14480482/769144