テーブルの上に変更イベントは、IEで失敗します
-
09-09-2019 - |
質問
私はテーブルの上に変更イベントをキャプチャするために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 のではありませんます。
私はあなただけの入力をターゲットにする必要がありますと思います。 (残念ながら「ライブ」機能は、いずれか、のonchangeをサポートしていません。)
所属していません StackOverflow