Knockout JS 防止在特定子节点上触发点击事件

Posted

技术标签:

【中文标题】Knockout JS 防止在特定子节点上触发点击事件【英文标题】:Knockout JS prevent click event triggering on a specific child 【发布时间】:2016-01-15 09:28:41 【问题描述】:

我看到有人问过类似的问题,但我无法使用 Knockout 'data-bind' 解决问题

我有一个父 div,里面有多个 div。在父 div 上,我有一个点击事件,我不想在具有其他事件处理的特定子 div 上触发。 我有这样的事情:

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked'></div>
  ....some other stuff...
</div>

在我的视图模型中,我尝试过:

function parentClicked() 
  alert('parent clicked');

function childClicked(event) 
  alert('child clicked');
  event.stopPropagation();

我知道'event.stopPropagation()'不是一个函数。 我做错了什么?

【问题讨论】:

【参考方案1】:

您必须使用clickBubble: false。供参考:Preventing the event from bubbling

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked, clickBubble: false'></div>
  ....some other stuff...
</div>

【讨论】:

以上是关于Knockout JS 防止在特定子节点上触发点击事件的主要内容,如果未能解决你的问题,请参考以下文章

如何防止点击子视图触发父视图上的 UITapGestureRecognizer?

knockout.js 虚拟模板绑定

js点击事件

如果两个依赖路径改变为可观察的,则Knockout在单个动作上计算多次触发

单击子锚点时,如何防止触发父级的 onclick 事件?

jquery中防止冒泡事件