如何防止标签使用 knockoutjs 刷新页面?

How to prevent a tag from refreshing page using knockoutjs?

当用户在可折叠侧边栏导航上单击 link 时,我有此 html 代码,它会刷新所有页面并重新加载 viewModel,但它会重置可折叠侧边栏。我认为这是因为父 div 有 ata-bind="click: clickEventTypeButton" 只是想问一下如何防止 link 中的事件冒泡并使用 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>

默认情况下,Knockout 将允许点击事件继续冒泡到任何更高级别的事件处理程序。

例如,如果您的元素和该元素的父元素都在处理点击事件,那么这两个元素的点击处理程序都会被触发。

由于 href 是侧边栏的子项,当您点击 href 时,将触发 2 个点击处理程序,因此您需要在滑动条上使用 clickBubble: false

勾选here注4