La chiamata al trigger ("clic") in jQuery attiva semplicemente il gestore di eventi "clic". In realtà non provoca un clic (e quindi una modifica dello stato selezionato) sulla casella di controllo - l'unica volta che fa qualcosa di simile è nel caso in cui l'elemento abbia una proprietà di funzione identica all'evento (ad esempio form.submit()
- ma non c'è checkbox.click()
).
Ma dal momento che si sta utilizzando eliminazione diretta, si potrebbe anche fare:
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());
});
che è praticamente il punto di utilizzare eliminazione diretta, in primo luogo. Apporta le modifiche al modello di vista, non alla vista. Poiché la proprietà del checkbox checked
è associata a IsSelected
, la modifica di modificherà la proprietà checked
della casella di controllo.