任务与这篇文章中的相同 :捕获点击链接并阻止浏览器的默认行为。那里给出的答案是这样的:
模板:
<a on-click='sayHello' href="#">Activate!</button>
JS:
ractive.on( 'sayHello', function ( event ) {
event.original.preventDefault();
alert( 'Hello world!' );
});
问题是sayHello
事件处理程序不应该知道原始事件是什么。代理的全部意义在于事件处理程序不应该关心原始事件的类型。比如我把链接改成按钮,就不需要了preventDefault
。
所以,我的问题是如何在触发事件代理之前或之后调用 preventDefault 。
一个不错的解决方案是连续触发多个事件代理(如果可能的话):
模板:
<a on-click='preventDefault;sayHello' href="#">Activate!</button>
JS:
ractive.on( 'preventDefault', function ( event ) {
event.original.preventDefault();
});
ractive.on( 'sayHello', function ( event ) {
alert( 'Hello world!' );
});
这有可能吗?还是有其他不错的解决方案?