我使用jQuery来捕获桌子上的一变化事件。该表有很多行,每行有几个输入框和一个复选框。要做到这一点,我使用的事件委托。我捕捉在TBODY级别的任何变化。这是以下

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

此代码工作正常在Firefox,但改变事件未在IE捕获。我想使用事件代理,而不是附接到每个事件到每个输入元件接近该溶液中。我也想避免指定使用jQuery每个元素作为表行是动态和解除绑定内置/捆绑事件似乎有点凌乱(只是我的意见)

这是如何得到任何想法这个工作?

有帮助吗?

解决方案

您实际上正在使用鼓泡拿起祖先元素上的事件,而不是捕获(其IE不支持和jQuery不使用)。不幸的是,同时onchange 泡在DOM规范不能在IE

我想你将不得不针对输入。 (不幸的是,“活”函数不支持平变化,无论是。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top