2012-03-27 6 views
0

У меня есть эти простые js вкладки.jQuery вкладки в IE 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> 

Вкладки работают отлично, кроме интернет expoler. Я пытался найти ошибку в коде - к сожалению, безуспешно.

Любой hepl очень ценится.

Большое спасибо заранее!

Дом

+0

Обнаружено это в google http://www.magentocommerce.com/boards/viewthread/253155/ это может помочь – Dampsquid

ответ

1

У вас есть два $ при выборе вам H3 ...

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

Это сейчас второй день, когда я пытаюсь понять, почему этот скрипт не работает. Любая помощь, пожалуйста? – Dom

+0

Измените строку выше $$ (селектор + 'h3'). Each (this.initTab.bind (this)); до $ (селектор + 'h3'). each (this.initTab.bind (this)); –

0

Возможно, эта линия является преступником? У вас есть 2 $$

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

Это то, что я изначально думал, им не понятно, почему есть, но без него вкладки полностью перерывы – Dom

0

Мои закладки хранятся исчезают в IE 9.

Они оказались вкладываться в ячейке таблицы , Как только я вынул их из камеры, у них больше не было проблемы с IE9.

+0

Ну, это не так в исходном вопросе. –

Смежные вопросы