我试图使用knockout将一个单击绑定到表中的行,如下所示:
<tr data-bind="click: $root.selectItem">
Run Code Online (Sandbox Code Playgroud)
它很棒.问题是当我尝试排除某些列进行点击操作时.我有编辑和删除行中的按钮,我不希望它们触发selectItem单击事件.我是否只需要绑定所有我希望以这种方式处理click事件的td,或者有更简单的方法吗?
RP *_*yer 21
更新:您可以通过添加clickBubble: false
作为click
Kevin 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);
}
};
Run Code Online (Sandbox Code Playgroud)
以下是一个示例:http://jsfiddle.net/rniemeyer/xj7Hs/
归档时间: |
|
查看次数: |
12802 次 |
最近记录: |