我有一个消息列表,我将这些消息的模板绑定到单击事件中,然后在此模板中,我有一个超链接绑定到js函数,该函数应该打开一个mailto页面。
但是单击此链接不会打开页面,尽管 js 函数执行,如果我右键单击"转到此地址"它就可以工作。我尝试了许多KO方法,如"clickBubble: false",将"controlsDescendantBindings"标志设置为true,"e.stopImmediatePropagation()"。但都失败了!
这是我代码的一部分:
(部分视图)
<div data-bind="template: { name: 'messageTemplate', foreach: OldMessageCollection}">
...
</div>
(模板:消息模板)
<div class="message_listed" data-bind="click: $root.GetSelectedMessage">
...
<ul class="actions_list">
<li><a data-bind="attr: { href: $root.mailToLink(ReplyTo())}"></a></li>
...
</ul>
</div>
ReplyTo() 是 KO 中的可观察对象,OldMessageCollection 是 observableArray。
它
使用
<a data-bind="attr: { href: $root.mailToLink()}, click: function() {return true;}, clickBubble: false">ReplyTo</a>