Pregunta

Estoy usando jQuery para capturar un evento de cambio sobre una mesa. La tabla tiene muchas filas y cada fila tiene un par de cajas de entradas y una casilla de verificación. Para hacer esto, estoy usando delegación de eventos. Estoy capturando cualquier cambio en el nivel tbody. Este es el siguiente código

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

Este código funciona bien en Firefox, pero el evento de cambio no se captura en el IE. Me gustaría acercarse a esta solución utilizando delegación de eventos en lugar de unir cada evento en cada elemento de entrada. También me gustaría evitar la orientación de cada elemento con jQuery como las filas de la tabla se construyen de forma dinámica y no vinculante / eventos vinculante parece un poco desordenado (sólo mi opinión)

¿Alguna idea sobre cómo conseguir que esto funcione?

¿Fue útil?

Solución

En realidad estás usando burbujeante para recoger el evento en el elemento antecesor, no captura (que IE no soporta y jQuery no utiliza). Por desgracia, mientras que onchange burbujas en la especificación DOM que no lo hace en el IE .

Creo que sólo tendrá que dirigirse a las entradas. (Por desgracia, la función de ‘en vivo’ no es compatible con onchange, tampoco.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top