Il semble qu'avec IE, certains délégués peuvent d'une manière ou d'une autre empêcher un autre délégué de fonctionner.
Voici un cas possible :
$(function() {
$('#main')
.delegate('div', 'click', function() {
alert('sur div !');
})
.delegate('[name=first]', 'change', function() {
alert('premier !');
})
.delegate('[name=second]', 'change', function() {
alert('deuxième !');
})
;
});
Test
Dans ce cas particulier, le gestionnaire pour la case à cocher ne se déclenchera pas.
Comme d'habitude, le problème ne se manifeste pas dans les autres navigateurs.
Changer l'ordre des appels peut résoudre un problème, mais au risque d'en causer un autre. Notez que le délégué fonctionne sur des éléments mutuellement exclusifs, donc l'ordre ne devrait pas être pertinent.
Qu'est-ce qui cause cela?