单击div内的按钮单击无效工作

时间:2016-01-29 07:02:49

标签: knockout.js

我在div中有一个按钮点击事件,它也有一个点击事件。如果用户单击该按钮,则只有insideClick应该执行而不是outsideClick。有人可以分享一些见解吗?

https://jsfiddle.net/s4om9y1y/

<input type="text" data-bind="value: goal" />
<div data-bind="click: outsideClick">
  Outside click.

  <button data-bind="click: insideClick">
    Inside click.
  </button>
</div>



function AppViewModel() {
  var self = this;
  self.goal = ko.observable(3);

  self.outsideClick = function() {
    alert('outside click');
  };
  self.insideClick = function() {
    alert('inside click');
  };

}

var vm = new AppViewModel();

ko.applyBindings(vm);

1 个答案:

答案 0 :(得分:5)

您需要将+-------+ +-------+ |ID |VAL| |ID |VAL| +-------+ +-------+ | 1 | 7 | | 1 | 7 | | 2 | | | 2 | 7 | | 3 | | | 3 | 7 | | 4 | 4 | | 4 | 4 | | 5 | 5 |after:| 5 | 5 | | 6 | | | 6 | 5 | | 7 | | | 7 | 5 | | 8 | 8 | | 8 | 8 | | 9 | 3 | | 9 | 3 | |10 | | |10 | 3 | +-------+ +-------+ 绑定与参数clickBubble添加到内部绑定中:

false

来自documentation

  

默认情况下,Knockout将允许click事件继续冒泡到任何更高级别的事件处理程序。例如,如果您的元素和该元素的父元素都处理click事件,则将触发两个元素的单击处理程序。 如有必要,您可以通过添加名为clickBubble的附加绑定并将false传递给它来阻止事件冒泡,......:

演示JSFiddle