【问题标题】:How to prevent a tag from refreshing page using knockoutjs?如何防止标签使用 knockoutjs 刷新页面?
【发布时间】:2015-01-29 03:05:56
【问题描述】:

当用户单击可折叠侧边栏导航上的链接时,我有此 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>

【问题讨论】:

  • 解释一下你的观点?
  • 我在办公室的代码我会在早上第一件事尝试一下
  • 上下文不清楚。如果您单击链接,页面将重新加载,这会重置您的页面,因此也会重置 viewModel。听起来您想保持页面之间可折叠侧边栏的状态?如果是这样,您可能需要考虑使用 cookie 或在 url 中传递值?

标签: javascript jquery html knockout.js


【解决方案1】:

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

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

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

检查here,注4

【讨论】:

  • 在标签中使用 clickBubble: false" 可以吗?
猜你喜欢
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多