我想要一个元素来侦听实际上由自身触发的自定义事件。自定义事件可能会从后代触发,但应该被忽略。重要的是它源于自身。它也需要是一个事件,因为我可能需要额外的祖先来监听事件。
.on ( http://api.jquery.com/on/ ) 方法能够提供此功能。选择器参数可以用作过滤器。但是,这不能过滤出侦听器元素本身。
简而言之:
-事件必须能够冒泡
-触发器和侦听器是同一个元素
-如果自定义事件由祖先触发,则侦听器必须忽略自定义事件
这是如何实现的?
根据要求使用案例
我使用 jquery UI 对话框小部件
$el = $('#dialogDiv');
$el.on('customEvent', $el /* Won't work */, function() {
//Do whatever
});
$el.dialog({
open: function() {
$el.trigger('customEvent');
}
});