Предотвращение появления щелчка от проверенной привязки с выбиванием

0

С этой скрипкой...

http://jsfiddle.net/jeljeljel/5skHX/

... заметьте, когда щелкнули ссылку "click me", элемент tbody обрабатывает событие щелчка, пузырящегося из элемента td. Однако, когда вы нажимаете этот флажок, обработчик клика по-прежнему вызывается. Как предотвратить блокирование события click от флажка?

HTML

<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>

JAVASCRIPT

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);
});
  • 0
    Да, я видел это, но возвращение 'true' из моего обработчика не решило проблему.
  • 1
    Вам нужно как click: function() { return true; }, clickBubble: false : jsfiddle.net/Q8sRF
Показать ещё 1 комментарий
Теги:
knockout.js

1 ответ

-3
...
<td id="clickmeID">[Click me]</td>
...

а также

$('#clickmeID').click(function () {
model.clicks(model.clicks() + 1);
});

Это то, что вы хотите?

  • 0
    Это работает, но для этого решения мне нужно, чтобы обработчик щелчков был присоединен к tbody.
  • 1
    Это не правильный ответ для использования с Knockout.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню