Si vous pensez que ce comportement indésirable, alors un loin autour, il serait de passer un paramètre supplémentaire à partir du jQuery.trigger() la case à cocher, cliquez sur gestionnaire. Ce paramètre supplémentaire est d'aviser le gestionnaire de clic clic a été déclenchée par programmation, plutôt que par l'utilisateur directement en cliquant sur la case elle-même. La case à cocher cliquez sur gestionnaire peut alors inverser l'rapporté vérifier l'état.
Voici donc comment j'allais déclencher l'événement de clic sur une case à cocher avec l'ID "myCheckBox". A noter que je suis aussi en passant un paramètre de l'objet avec un seul membre, nonUI, qui est à true:
$("#myCheckbox").trigger('click', {nonUI : true})
Et voici comment je gère que, dans la case du gestionnaire d'événements click. La fonction de gestionnaire vérifie la présence de la nonUI objet comme second paramètre. (Le premier paramètre est toujours l'événement lui-même.) Si le paramètre est présent et mis à vrai, alors j'ai inverser le signalé .le statut vérifié. Si aucun paramètre n'est passé dans lequel il n'y aura pas si l'utilisateur clique simplement sur la case à cocher dans l'INTERFACE utilisateur - puis-je faire rapport du réel .le statut vérifié:
$("#myCheckbox").click(function(e, parameters) {
var nonUI = false;
try {
nonUI = parameters.nonUI;
} catch (e) {}
var checked = nonUI ? !this.checked : this.checked;
alert('Checked = ' + checked);
});
JSFiddle version à http://jsfiddle.net/BrownieBoy/h5mDZ/
J'ai testé avec Chrome, Firefox et IE 8.