Открыть href = "# tab-что-то через URL - PullRequest
2 голосов
/ 29 ноября 2011
<div id="tabs" class="htabs">
<a href="#tab-description"><?php echo $tab_description; ?></a>
<a href="#tab-attribute"><?php echo $tab_attribute; ?></a>
<a href="#tab-review"><?php echo $tab_review; ?></a>
<a href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>
</div>

Когда я нажимаю эту ссылку, например: .../product_id=40 по умолчанию открывается #tab-description. Как я могу позвонить #tab-review через URL, который будет открыт в первую очередь, то есть, если я введу URL-адрес примерно так: .../product_id=40#tab-review #tab-review, который будет открыт?

Заранее спасибо.

РЕДАКТИРОВАТЬ: Вот содержимое tabs.js и путь к этому файлу: ... / catalog / view / javascript / jquery / tabs.js

$.fn.tabs = function() {
var selector = this;

this.each(function() {
    var obj = $(this); 

    $(obj.attr('href')).hide();

    $(obj).click(function() {
        $(selector).removeClass('selected');

        $(selector).each(function(i, element) {
            $($(element).attr('href')).hide();
        });

        $(this).addClass('selected');

        $($(this).attr('href')).fadeIn();

        return false;
    });
});

$(this).show();

$(this).first().click();
};

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Вы можете попробовать это:

 <script>
 //--edit add check if having a hash
 if (location.href.indexOf("#") != -1) {
    if(window.location.hash) {
       //get hash value and put to a variable
       var hash = window.location.hash.substring(1); 
       alert (hash);
       // hash found add selected class to the tab
    } else {
       // No hash found
    }
 }
 </script>
0 голосов
/ 29 ноября 2011

Вы используете jQuery? Вы можете поместить это в ready слушатель:

$(document).ready(function() {
    if(window.location.hash.length > 1) {
        $('a[href="' + window.location.hash + '"]').click();
    }
});

Если вы не используете jQuery, мне понадобится дополнительная информация ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...