我有这个HTML代码,当用户点击可折叠侧边栏上的链接导航它刷新所有页面并重新加载viewModel但它将重置可折叠侧边栏。我认为这是因为父div有ata-bind =“click:clickEventTypeButton”只是想问我如何防止链接中的事件冒泡并使用KOjs刷新
<div class="toolbar-options cursor-hand" data-bind="click: clickEventTypeButton">
<label>Event Type</strong>
</div>
<div class="toolbar-secondary-options initial-state" data-bind="fadeVisible: isEventTypeSelected">
<a class="menuItem" data-bind="attr: {href: eventTypeLink}">
<div class="toolbar-options cursor-hand">
<strong>Event Types</strong>
</div>
</a>
<a class="menuItem" data-bind="attr: { href: programLink }">
<div class="toolbar-options cursor-hand">
<strong>Programs</strong>
</div>
</a>
</div>
答案 0 :(得分:0)
默认情况下,Knockout将允许click事件继续冒泡到任何更高级别的事件处理程序。
例如,如果您的元素和该元素的父元素都处理click事件,则将触发两个元素的单击处理程序。
由于href是侧边栏的子项,因此当您点击href时,将触发2点击处理程序,因此您需要在滑动条上使用clickBubble: false
检查here, note 4