J'utilise jQuery pour capturer un événement de modification sur une table. La table a beaucoup de lignes et chaque rangée a quelques boîtes d'entrées et une case à cocher. Pour ce faire, j'utilise la délégation d'événements. Je capture tout changement au niveau du corps. Voici le code ci-dessousL'événement de modification sur une table échoue dans IE
$j('#orderItems tbody').change(function(event){
var target = $j(event.target);
var nodeName = $j(target).attr('nodeName').toLowerCase();
if(nodeName == 'input'){
if($j(target).hasClass('partnum')){
var val = $j(target).attr('value');
dsOrder.getItem(target);
dsOrder.updateActiveIndex(target);
}
if($j(target).hasClass('qty')){
var val = $j(target).attr('value');
dsOrder.updateQty(target);
dsOrder.updateActiveIndex(target);
}
if($j(target).hasClass('unitprice')){
var val = $j(target).attr('value');
dsOrder.updatePrice(target);
dsOrder.updateActiveIndex(target);
}
}
})
Ce code fonctionne très bien dans Firefox, mais l'événement de changement n'est pas capturé dans IE. Je voudrais aborder cette solution en utilisant la délégation d'événement plutôt que d'attacher chaque événement sur chaque élément d'entrée. Je voudrais également éviter de cibler chaque élément en utilisant jQuery car les lignes de la table sont construites dynamiquement et les événements de liaison/reliure semblent un peu en désordre (juste mon opinion)
Des idées pour que cela fonctionne?