gpt4 book ai didi

knockout.js - Knockoutjs - 表格行点击绑定(bind),想要从点击事件中排除列

转载 作者:行者123 更新时间:2023-12-04 05:04:46 24 4
gpt4 key购买 nike

我正在尝试使用 knockout 将点击绑定(bind)到表中的一行,如下所示:

<tr data-bind="click: $root.selectItem">

它工作得很好。问题是当我尝试从执行点击操作中排除某些列时。我的行中有编辑和删除按钮,我不希望它们触发 selectItem 单击事件。我是否只需要将我想要以这种方式表现的所有 td 绑定(bind)到点击事件,还是有更简单的方法来做到这一点?

在这里提琴: http://jsfiddle.net/blankasaurus/WYKEM/

最佳答案

更新:您可以通过添加 clickBubble: false 来避免自定义绑定(bind)作为与 click 的附加绑定(bind)Kevin Obee 建议的绑定(bind)并在此示例中演示:http://jsfiddle.net/kevinobee/Q25ja/2/

原文:您可以使用包装 click 的自定义绑定(bind)绑定(bind)并防止发生其他事件。它可能看起来像:

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/

关于knockout.js - Knockoutjs - 表格行点击绑定(bind),想要从点击事件中排除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com