我正在尝试学习如何使用Aurelia框架。这样做,我读的文档在这里对他们的结合事件的方法。该文档建议默认使用委托。我分叉了他们在其博客文章之一中提供的“ punkr”,并添加了一些内容。满满的朋克就在这里。
app.html
<template>
<input value.bind="pageInput" blur.delegate="showAlert()" placeholder="delegate()" />
<input value.bind="pageInput" blur.trigger="showAlert()" placeholder="trigger()" />
<button type="button" click.delegate="showAlert()">delegate()</button>
<button type="button" click.trigger="showAlert()">trigger()</button>
</template>
app.js
export class App {
showAlert() {
alert('showAlert()');
}
}
如您在插件中所看到的,blur.trigger / click.delegate / click.trigger均会触发事件,而blur.delegate不会。
为什么会这样呢?
您如何确定什么时候.delegate
不工作(当然无需手动测试)?
disabled
,则需要将click
事件设置为trigger
,而不是delegate
。如果使用delegate
,则click
即使单击了该按钮,该事件仍会在单击该按钮时触发。有关更多详细信息,请参见此