更新:您避免自定义绑定加入clickBubble: false
作为附加与click
结合结合由凯文·Obee利用的建议,并在此示例中证明:http://jsfiddle.net/kevinobee/Q25ja/2/
原文:你可以使用包装click
绑定的自定义绑定并防止发生其他事件。它可能看起来像:
ko.bindingHandlers.clickAndStop = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel, context) {
var handler = ko.utils.unwrapObservable(valueAccessor()),
newValueAccessor = function() {
return function(data, event) {
handler.call(viewModel, data, event);
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
};
};
ko.bindingHandlers.click.init(element, newValueAccessor, allBindingsAccessor, viewModel, context);
}
};
这里有一个例子:http://jsfiddle.net/rniemeyer/xj7Hs/
+1的最佳解决方案! – 2012-01-17 01:00:18
这是一个非常方便的解决方案。 – 2014-09-15 13:57:37