Tengo una serie de casillas de verificación y quiero recopilar la seleccionada. Las casillas de verificación están en div de y cuando se hace clic en el div la casilla de verificación debe ser evaluada, así:La propiedad KnockoutJS no se actualiza al cambiar el valor con Jquery
var oCheckBox = $($(this).find('.chkSocialMediaItem').get(0));
oCheckBox.attr('checked', !$(oCheckBox).attr('checked'));
Esto funciona muy bien, pero KnockoutJS no recoge el cambio y por lo tanto no actualizar mi contador en el seleccionado artículos.
Leo en algún lugar que necesita para desencadenar el evento de cambio. Pero cuando escucho el evento de cambio en la casilla, realmente se dispara.
Cualquier ayuda sería apreciada, Gracias!
Actualización:
He encontrado una solución 'nocaut'. En mi div hice una técnica de rem el 'clic' y cambia el valor comprobado en esa función:
<script type="text/html" id="Template">
<div class="item" data-bind="click: DivClicked">
<input type="checkbox" data-bind="checked: IsASelectedItem" class="chkSocialMediaItem"/>
</div>
</script>
function SocialMediaSearchItem() {
this.IsASelectedItem = ko.observable();
this.DivClicked = function() {
this.IsASelectedItem(!this.IsASelectedItem());
};
}
Es esta la única solución? Me gustaría que 2 también vean una solución de Jquery.
¡Gracias por la respuesta rápida! Comprobaré el lunes beta cuando estoy de vuelta en el trabajo :) –
Oh, eso es útil, ¿alguna idea de cómo saber a qué 'propiedad' se aplica un control, así como a viewModel? –
Actualmente, no hay una forma de hacerlo, aparte de analizar el atributo 'data-bind' usted mismo y luego usar el nombre de la propiedad con los datos (' data ['somePropertyName'] ') –