Подтвердить что ты не робот

Нажмите на флажок в строках, чтобы связать событие с привязкой к нокауту строки

У меня есть сценарий, в котором событие Click привязано к <tr>, а проверенное значение привязывается к флажку внутри <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();
    };

Я обрезал ненужные коды. Просто поставьте, где возникла проблема.

4b9b3361

Ответ 1

Вам по существу нужно будет отменить всплеск событий при нажатии.

Вот пример того, как вы можете это сделать:

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

Смотрите здесь: http://jsfiddle.net/2M9XP/1/