Javascript 防止敲除选中绑定中的单击气泡

Javascript 防止敲除选中绑定中的单击气泡,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,用这把小提琴 …请注意,单击“单击我”链接时,tbody元素将处理从td元素冒泡的单击事件。但是,当您单击复选框时,仍会调用单击处理程序。如何防止单击事件从复选框冒泡 HTML 这就是你想要的吗?是的,我看到了,但是从我的处理程序返回'true'并不能解决问题。你需要两个函数:click:function{return true;},clickBubble:false:Yes!这就是答案。谢谢!这是可行的,但是对于这个解决方案,我需要将click处理程序附加到tbody。这不是用于Knockou

用这把小提琴

…请注意,单击“单击我”链接时,tbody元素将处理从td元素冒泡的单击事件。但是,当您单击复选框时,仍会调用单击处理程序。如何防止单击事件从复选框冒泡

HTML


这就是你想要的吗?

是的,我看到了,但是从我的处理程序返回'true'并不能解决问题。你需要两个函数:click:function{return true;},clickBubble:false:Yes!这就是答案。谢谢!这是可行的,但是对于这个解决方案,我需要将click处理程序附加到tbody。这不是用于Knockout的正确答案。
<table>
    <thead>
        <tr>
            <th></th>
            <th>Col 1</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <input type="checkbox" data-bind="checked: itemSelected" />
            </td>
            <td>[Click me]</td>
        </tr>
    </tbody>
</table>
<div id="clicks" data-bind="text: clicks"></div>
function Model() {
    var self = this;
    self.value = ko.observable();
    self.clicks = ko.observable(0);
    self.itemSelected = ko.computed({
        read: function () {
            return self.value();
        },
        write: function (value) {
            self.value(value);
            return true;
        },
        deferEvaluation: true
    });
}
var model = new Model();
ko.applyBindings(model);

$('tbody').click(function () {
    model.clicks(model.clicks() + 1);
});
...
<td id="clickmeID">[Click me]</td>
...
$('#clickmeID').click(function () {
model.clicks(model.clicks() + 1);
});