gpt4 book ai didi

knockout.js - 单击行中的复选框在行 knockout 绑定(bind)上触发事件绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 23:23:24 26 4
gpt4 key购买 nike

我有一个 Click 事件绑定(bind)到 <tr> 的场景。并且选中的值绑定(bind)到 <td? 中的复选框里面 <tr> .现在的问题是当单击该行时,触发事件就可以了。但是如果我单击复选框,则行的可观察值也会更改并触发行单击事件。如何避免这种情况

<tbody data-bind="foreach:Mails">
<tr data-bind="click:$root.navigateToMail">
<td style="width: 15px">
<input type="checkbox" data-bind="checked: isSelected">
@*<input type="checkbox">*@
</td>
<td data-bind="text: From">
</td>
<td data-bind="text: To">
</td>
<td data-bind="text: Subject">
</td>
<td data-bind="text: MailDate">
</td>
</tr>
</tbody>

事件是:
 ko.utils.arrayForEach(data.mails, function (mail) {
mail.isSelected = ko.observable(false);
mail.isSelected.subscribe(function (myvalue) {
console.log(myvalue);
});
});
self.navigateToMail = function (mail) {
location.hash = mail.Folder() + '/' + mail.Id();
};

我修剪了不必要的代码。只是把问题出现在哪里。

最佳答案

您基本上需要取消单击时冒泡的事件。

这是一个如何做到这一点的示例:

<div data-bind="click: parentClick">
<input type="checkbox" data-bind="checked: isSelected, click: function(){return true}, clickBubble: false">
</div>​

见这里: http://jsfiddle.net/2M9XP/1/

关于knockout.js - 单击行中的复选框在行 knockout 绑定(bind)上触发事件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14157478/

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