绑定Aurelia事件处理程序可防止默认操作

时间:2016-11-08 04:50:13

标签: aurelia aurelia-binding dom-events

我的菜单中有链接到我页面中的锚点。我希望在点击其中一个链接并且仍然发生默认操作时折叠菜单。当我绑定aurelia事件处理程序时,似乎永远不会发生默认操作(链接不会导航)。如何绑定aurelia事件处理程序以及是否对锚标记执行默认操作?

即:

HTML

<ul class="${navClass}">
    <li><a href="#about" click.trigger="_toggleMenu()"><i class="fa fa-pencil" style="color: #FFFF00;"></i><span>About</span></a></li>        
</ul>

JS

_toggleMenu() {
    if(this.navClass == 'nav') {
        this.navClass += ' expand';
    } else {
        this.navClass = 'nav';
    }
}

1 个答案:

答案 0 :(得分:5)

使用click.delegate="_toggleMenu()"(也适用于触发器,但首选委托,请参阅https://github.com/aurelia/binding/blob/master/doc/article/en-US/binding-delegate-vs-trigger.md

然后返回true以让动作冒泡:

_toggleMenu() {
    if(this.navClass == 'nav') {
        this.navClass += ' expand';
    } else {
        this.navClass = 'nav';
    }

    return true;
}