2012-03-27 14 views
0

私はこのシンプルなjsタブを持っています。IE 9のjQueryタブが正しく動作しない

<div class="product-collateral"> 
    <div class="tab"> 
     <h3 class="product_tabs_agenda">Tab 1</h3> 
    </div> 
    <div class="product-tabs-content" id="product_tabs_agenda_contents"> 
     <p>Tab1 Content</p> 
    </div> 
    <div class="tab"> 
     <h3 class="product_tabs_terms">Terms and Conditions</h3> 
    </div> 
    <div class="product-tabs-content" id="product_tabs_terms_contents"> 
     <p>Some terms and conditions</p> 
    </div> 
</div> 

とJavaは以下の通りである:

< script type = "text/javascript" > $jQ('.product-collateral .tab h3').wrapAll('<ul class="product-tabs"></ul>').wrap('<li></li>'); 
$jQ('.product-collateral .product-tabs li').each(function(index) { 
    $jQ(this).attr('id', $jQ(this).find('h3').attr('class')); 
    if (index == 0) $jQ(this).addClass('active'); 
}); 
//<![CDATA[ 
Varien.Tabs = Class.create(); 
Varien.Tabs.prototype = { 
    initialize: function(selector) { 
     var self = this; 
     $$(selector + ' h3').each(this.initTab.bind(this)); 
    }, 

    initTab: function(el) { 
     el.href = 'javascript:void(0)'; 
     if ($(el.parentNode).hasClassName('active')) { 
      this.showContent(el); 
     } 
     el.observe('click', this.showContent.bind(this, el)); 
    }, 

    showContent: function(a) { 
     var li = $(a.parentNode), 
      ul = $(li.parentNode); 
     ul.select('li', 'ol').each(function(el) { 
      var contents = $(el.id + '_contents'); 
      if (el == li) { 
       el.addClassName('active'); 
       contents.show(); 
      } else { 
       el.removeClassName('active'); 
       contents.hide(); 
      } 
     }); 
    } 
} 
new Varien.Tabs('.product-tabs'); 
//]]> 
< /script> 

タブがインターネットexpolerから罰金離れて作業している。ここ

はhtmlです。私はコードのバグを見つけようとしていましたが、残念ながら失敗でした。

非常に感謝しています。

事前に感謝します。

Dom

+0

Googleでこれを見つけたhttp://www.magentocommerce.com/boards/viewthread/253155/助けてくれるかもしれない – Dampsquid

答えて

1

あなたH3を選択するとき、次の2つの$を持っているが...

initialize: function(selector) { 
     var self = this; 
     $$(selector + ' h3').each(this.initTab.bind(this)); 
    }, 
+0

今はなぜこのスクリプトがうまくいかないのか解明しようとしている2日目です。助けてください? – Dom

+0

$$(セレクタ+ 'h3')の上の行を変更します。each(this.initTab.bind(this)); $(セレクタ+ 'h3')。それぞれ(this.initTab.bind(this)); –

0

多分この行が原因ですか?あなたは彼らが表のセルにネストされるように起こった2 $$

$$(selector + ' h3').each(this.initTab.bind(this)); 
+0

これは私が当初考えていたものですが、なぜそこにあるのですか?タブなしでは完全にブレークします – Dom

0

私のタブが

IE 9に消え続けています。いったん私は彼らをセルから取り出した後、彼らはもうIE 9の問題を持っていませんでした。

+0

元の質問ではそうではありません。 –

関連する問題