Pergunta

Eu estou usando jQuery para capturar um evento de alteração sobre uma mesa. A tabela tem muitas linhas e cada linha tem um entradas algumas caixas e uma caixa de seleção. Para fazer isso, eu estou usando a delegação de evento. Estou captando quaisquer alterações ao nível tbody. Este é o código abaixo

$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 bem funciona no Firefox, mas o evento de alteração não é capturado no IE. Gostaria de abordar esta solução usando a delegação de evento em vez de anexar cada evento em cada elemento de entrada. Eu também gostaria de evitar alvejando cada elemento usando jQuery como as linhas da tabela são construídos de forma dinâmica e unbinding / eventos de ligação parece um pouco confuso (apenas a minha opinião)

Todas as idéias sobre como chegar a este trabalho?

Foi útil?

Solução

Você está realmente usando borbulhando para pegar o evento no elemento ancestral, não captura (que o IE não suporta e jQuery não usar). Infelizmente, enquanto onchange bolhas na especificação DOM ele não no IE .

Eu acho que você só vai ter que direcionar as entradas. (Infelizmente, a função ‘live’ não suporta onchange, também.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top