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