2012-03-27 7 views
-1

のために働いていない私は、関数のこの部分を持っている:jQueryの機能がIE9

$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'); 
     }); 

は、このインターネットエクスプローラー9で動作しませんなぜ何らかの理由はありますか?

今のところ私はそれを理解しようとしていて、何のことも考えていないかなりの時間を費やしました。

事前にアドバイスをいただきありがとうございます。

ドム

- 申し訳ありませんが、これは、HTML

<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> 

申し訳ありませんが、私はそれがこのことについての私の欲求不満だったと思う "もの"

は、これは事前に定義されていることを確認します

+1

これは他のブラウザでも動作しますか? –

+2

「うまくいかない」とはどういう意味ですか?エラー?予期しない動作?コードのどの部分がうまくいかないの? – JJJ

+0

もっとコードを入力してください。問題のHTMLのように、具体的に何が動作していないのですか? – Timmerz

答えて

1

http://api.jquery.com/jQuery.noConflict/

ありがとうございます。 $ jQには、指定したコードに値がありません。

$jQ = jQuery.noConflict(); 

おそらくありません。エイリアスを呼び出す前にこれを定義する必要があります。

+0

また、_または - 一貫してあなたのクラス名で。 –

+0

ありがとうChristopher、Iveはそれを試みました。まだ何も。最も不思議なことは、このスクリプトはIE7と8モードで正常に動作していますが、9では動作していないことです。私はここで失われています – Dom

関連する問題