2012-02-01 18 views

risposta

4

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.

Problemi correlati