特定のClass名を軸に、要素内に割り振られたキーワード同士を紐付け、それらを開閉させる動きを作っています。おおよそのブラウザで想定通りの動きをしているのですが、IE10のみエラーが表示されてしまい動作しません。
どなたか分かる方いらっしゃいましたら、問題点と解決法を教えていただきたく存じます。
【 動きの説明 】
[ lcSwitch ]というClass内にて[ lcSwitchCause ]というClass名を拾い、同じ要素にある独自data属性の値と紐付け、対象となる[ lcSwitchEffect ]を開閉しています。
また、対象があった場合に初期状態を非表示にさせています。
html
1<div class="lcSwitch"> 2 <div class="lcSwitchCause" data-lcSwitch="1"> … </div> 3 <div class="lcSwitchCause" data-lcSwitch="2"> … </div> 4 <div class="lcSwitchCause" data-lcSwitch="3"> … </div> 5 6 <div class="lcSwitchEffect1"> … </div> 7 <div class="lcSwitchEffect2"> … </div> 8 <div class="lcSwitchEffect3"> … </div> 9</div>
javascript
1jQuery('.lcSwitch').each(function() { 2 var lcSwitch = jQuery(this); 3 4 jQuery(this).find('.lcSwitchCause').each(function() { 5 var lcSwitchN = jQuery(this).attr('data-lcSwitch'); 6 var lcSwitchEffectN = 'lcSwitchEffect' + lcSwitchN; 7 8 jQuery(lcSwitch).find('.' + lcSwitchEffectN).each(function() { 9 if(jQuery(this).show()) { 10 jQuery('[class*=lcSwitchEffect]').hide(); 11 } else { 12 jQuery('[class*=lcSwitchEffect]').show(); 13 } 14 }); 15 16 jQuery(this).on('click', function() { 17 jQuery(lcSwitch).find('.' + lcSwitchEffectN).toggle(); 18 19 return false; 20 }); 21 22 }); 23});
私的に検証した結果では、下記部分にてエラーが生じているようです。
each前で取得しているものが、IE10と、その他ブラウザで異なっているようなのですが、解決方法が分かりません。。
javascript
1 2jQuery(lcSwitch).find('.' + lcSwitchEffectN).each(function() { 3 if(jQuery(this).show()) { 4 jQuery('[class*=lcSwitchEffect]').hide(); 5 } else { 6 jQuery('[class*=lcSwitchEffect]').show(); 7 } 8});
どうぞ、宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/29 02:02