Magento 方法,当您已经在同一页上时。直接单击选项卡或使用Zifius的选择选项卡功能。不管怎样,Zifius为我回答了这个问题。但愿我能把这两个都记下来作为答案!非常感谢。我之所以想在同一个页面上使用它,是因为我们有一个标签,上面有客户评论,页面顶部有一个链接,上

Magento 方法,当您已经在同一页上时。直接单击选项卡或使用Zifius的选择选项卡功能。不管怎样,Zifius为我回答了这个问题。但愿我能把这两个都记下来作为答案!非常感谢。我之所以想在同一个页面上使用它,是因为我们有一个标签,上面有客户评论,页面顶部有一个链接,上,magento,tabs,prototypejs,Magento,Tabs,Prototypejs,方法,当您已经在同一页上时。直接单击选项卡或使用Zifius的选择选项卡功能。不管怎样,Zifius为我回答了这个问题。但愿我能把这两个都记下来作为答案!非常感谢。我之所以想在同一个页面上使用它,是因为我们有一个标签,上面有客户评论,页面顶部有一个链接,上面写着“阅读评论”。客户点击该链接,什么也没发生。如果你愿意的话,标签是“在折叠下面”,因此评论内容的位置并不明显。我知道评论链接改变了片段。问题是如何应对这种变化,根据浏览器的不同,至少有3种方法可供使用。很方便地对这些内容进行了抽象,但对于


方法,当您已经在同一页上时。直接单击选项卡或使用Zifius的选择选项卡功能。不管怎样,Zifius为我回答了这个问题。但愿我能把这两个都记下来作为答案!非常感谢。我之所以想在同一个页面上使用它,是因为我们有一个标签,上面有客户评论,页面顶部有一个链接,上面写着“阅读评论”。客户点击该链接,什么也没发生。如果你愿意的话,标签是“在折叠下面”,因此评论内容的位置并不明显。我知道评论链接改变了片段。问题是如何应对这种变化,根据浏览器的不同,至少有3种方法可供使用。很方便地对这些内容进行了抽象,但对于已经修复的内容,似乎需要做很多工作。也许您可以编辑您的方法以滚动到选项卡内容容器的ID?就我的使用而言,这将使我能够两全其美。也许你可以编辑你的方法来滚动到选项卡内容容器的ID?就我的使用而言,它将使我能够同时拥有两个世界中最好的一个。
Enterprise.Tabs = Class.create();
Object.extend(Enterprise.Tabs.prototype, {
 initialize: function (container) {
    this.container = $(container);
    this.container.addClassName('tab-list');
    this.tabs = this.container.select('dt.tab');
    this.activeTab = this.tabs.first();
    this.tabs.first().addClassName('first');
    this.tabs.last().addClassName('last');
    this.onTabClick = this.handleTabClick.bindAsEventListener(this);
    for (var i = 0, l = this.tabs.length; i < l; i ++) {
        this.tabs[i].observe('click', this.onTabClick);
    }
    this.select();
},
handleTabClick: function (evt) {
    this.activeTab = Event.findElement(evt, 'dt');
    this.select();
},
select: function () {
    for (var i = 0, l = this.tabs.length; i < l; i ++) {
        if (this.tabs[i] == this.activeTab) {
            this.tabs[i].addClassName('active');
            this.tabs[i].style.zIndex = this.tabs.length + 2;
            /*this.tabs[i].next('dd').show();*/
            new Effect.Appear (this.tabs[i].next('dd'), { duration:0.5 });
            this.tabs[i].parentNode.style.height=this.tabs[i].next('dd').getHeight() + 15 + 'px';
        } else {
            this.tabs[i].removeClassName('active');
            this.tabs[i].style.zIndex = this.tabs.length + 1 - i;
            this.tabs[i].next('dd').hide();
        }
    }
}
});
initialize: function (container) {
    this.container = $(container);
    this.container.addClassName('tab-list');
    this.tabs = this.container.select('dt.tab');
// change starts here //
    var hashTab = $(window.location.hash.slice(1));
    this.activeTab = ( this.tabs.include(hashTab) ? hashTab : this.tabs.first());
// change ends here //
    this.tabs.first().addClassName('first');
    this.tabs.last().addClassName('last');
    this.onTabClick = this.handleTabClick.bindAsEventListener(this);
    for (var i = 0, l = this.tabs.length; i < l; i ++) {
        this.tabs[i].observe('click', this.onTabClick);
    }
    this.select();
}
$productUrl = Mage::getUrl('catalog/product/view', array(
    'id' => $productId,
    '_fragment' => 'tab_id',
));
<script type="text/javascript">
        var collateralTabs = new Enterprise.Tabs('collateral-tabs');
        Event.observe(window, 'load', function() {
            collateralTabs.select();
        });
</script>
Event.observe(window, 'load', function() {
    new Enterprise.Tabs('collateral-tabs', $('tab_review'));
});
initialize: function (container, el) {
    ...
    this.activeTab = el;
    ...
}