これはクリックの問題か、jQueryフェード関数特有のものかわかりません。jQuery - IE fadeIn()、すぐにfadeOut()を発行します。
私はこのようなHTMLの構造を有する:label > input(hidden) + div + label text
例を次のように
<label data-name="primary-residence" data-value="Yes">
<input type="hidden" id="primary-residence" name="Primary Residence" value="" />
<div class="big-check-box"></div>
Primary Residence
</label>
とjQueryは、次のとおりです。
$('label').on('click', function(){
var name = $(this).data('name');
var value = $(this).data('value');
if($(this).find('.big-check-box').hasClass('checked')){
$(this).find('.big-check-box').removeClass('checked');
$('#'+name).val('');
$('#'+name+'-value, #'+name+'-loan-balance').fadeOut();
}else{
$('#'+name).val(value);
$(this).find('.big-check-box').addClass('checked');
$('#'+name+'-value, #'+name+'-loan-balance').fadeIn();
}
});
私はbig-box
を持っているチェックボックスとして機能しているとフォームの提出時に収集する隠しフィールドにデータ属性を設定します。また、クラスをチェックボックスに適用し、2つの新しい入力フィールドをフェードインします。
ChromeやFFではすべてうまく動作しますが、IEではクラスがボックスに適用されず、新しい入力フィールドがフェードインし、フェードインアニメーションが完了するとすぐにフェードアウトします。クリックが2回行われない限り、それはうまくいくように見えますが、それはあまり直感的ではなく、使いやすいものでもありません。ここで
は、実施例にフィドルです:なぜこれが起こっているjsFiddle
誰もが知っていますか?