jQueryを使用してテーブルの変更イベントを取得しています。テーブルには多くの行があり、各行にはいくつかの入力ボックスとチェックボックスがあります。これを行うために、私はイベント委任を使用しています。私はtbodyレベルでの変更をキャプチャしています。これは以下のコードですテーブルの変更イベントが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);
}
}
})
このコードはFirefoxで正常に動作しますが、変更イベントはIEでキャプチャされません。各イベントを各入力要素に割り当てるのではなく、イベント委任を使用してこのソリューションにアプローチしたいと思います。テーブル行が動的に構築され、バインド/バインディングイベントがちょっと乱雑に見えるので、jQueryを使用して各要素をターゲットにすることを避けたいと思います(私の意見)
これを動作させる方法については、