2012-02-01 13 views

Respuesta

4

El disparo de llamada ("clic") en jQuery simplemente desencadena su controlador de evento "clic". En realidad, no causa un clic (y por lo tanto un cambio del estado verificado) en la casilla de verificación - el único momento en que hace algo así es en el caso en que el elemento tiene una propiedad de función llamada igual que el evento (por ejemplo, form.submit() - pero no hay checkbox.click()).

Pero ya que estás usando nocaut, que también podría hacer:

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()); 
}); 

Eso es más o menos el punto de utilizar nocaut en el primer lugar. Realice los cambios en el modelo de vista, no en la vista. Dado que la propiedad checked de la casilla de verificación está enlazada a datos IsSelected, al cambiar IsSelected se cambiará la propiedad checked de la casilla de verificación.

Cuestiones relacionadas