Триггер вызова ("click") в jQuery просто запускает ваш обработчик событий "click".На самом деле это не вызывает щелчок (и, следовательно, изменение проверенного состояния) на флажке - единственный раз, когда он делает что-то подобное, в случае, когда элемент имеет свойство функции, названное так же, как событие (например, form.submit()
- но нет checkbox.click()
).
Но так как вы используете нокаут, вы могли бы также сделать:
var viewModel = {
IsSelected: ko.observable(false) // Initially false
};
ko.applyBindings(viewModel);
$('#buttonInput').click(function(){
viewModel.IsSelected(true); // <-------
// Or, in order to toggle:
// viewModel.IsSelected(!viewModel.IsSelected());
});
В этом и заключается смысл использования нокаута впервое место.Вносите изменения в модель представления, а не в представление.Поскольку свойство checked
флажка является привязкой данных к IsSelected
, изменение IsSelected
изменит свойство checked
флажка.