如何让一个小部件监听其他小部件的点击,但不听正常的点击。例如:jquery命名空间事件
var $dialogWidget = jQuery('#dialogWidget');
$dialogWidget
.bind('click.btn1.otherWidget',doSomething)
.bind('click.btn2.otherWidget',doSomething2)
.bind('click.btn1.otherWidget2',doSomething3);
这段代码的问题是,当我点击$ dialogWidget的任何地方,都认为我已绑定这些事件将被触发。我要的是这个
var $otherWidget = jQuery('#otherWidget');
var $btn1 = $otherWidget.find('a.btn1');
$btn1
.click(function(){
$dialogWidget.trigger('click.btn1.otherWidget');
});
这应该是“click.btn1.otherWidget”事件是$ dialogWidget解雇的唯一途径。
我可以做的一件事可能是黑客随时可以手动点击点击事件是使用“点击”而不是点击,但这感觉就像一个黑客。有任何想法吗?
很明显,jQuery支持独占事件。所以$ dialogWidget.trigger('click!')只会触发'click'而不是'click.namespace'事件。我需要与此相反的。像$ dialogWidget.bind('click.namespace!'),这意味着只有手动触发这个完全合格的事件的项目会触发这个 – 2010-08-05 22:35:00