2 つの列を含むテーブルがあります。
最初の列に親の名前、2 番目の子の名前が含まれているとします。デフォルトでは、最初の親要素が選択されます。最初の要素を除くすべての親の子を隠しています。
アコーディオンのように動作するコードは次のとおりです(一度に1つだけが表示されます):
$(document).ready(function() {
var childs = $('.tableCellWBorderGray > div'); // child divs
childs.hide();
$("input:radio[name=attribute]").change(function(){
var parent = $(this).parent().next(); // In our case, second td
var kids = parent.children();
childs.slideUp('slow');
kids.slideDown('slow');
});
// select first element and trigger change event to show childs.
$('input:radio[name=attribute]:nth(0)').attr('checked',true).trigger('change');
});
これは、他のすべてのブラウザーで正常に機能します。
しかし、IEDocument Mode: IE7 Standards
では、最初にチェックされた要素をクリックすると、change
が発生します。チェックされた要素をクリックすると、これは一度だけ発生します。防ぎたい。
val() を使用して選択の値を設定すると、jquery 変更イベントがトリガーされ ないのはなぜですか?
受け入れられた答えは、
変更イベントには、JavaScript コードではなく、ユーザーが開始した実際のブラウザー イベントが必要です。
回避策はありますか?