С этой скрипкой...
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);
});
...
<td id="clickmeID">[Click me]</td>
...
а также
$('#clickmeID').click(function () {
model.clicks(model.clicks() + 1);
});
Это то, что вы хотите?
click: function() { return true; }, clickBubble: false
: jsfiddle.net/Q8sRF