2

我正在使用 jQuery 选项卡实现并且一切正常,但是我希望能够链接到一个 URL,例如http://www.mydomain.com/tabs.html#tab2并在选项卡 2 上自动打开页面,到目前为止我在哪里http://jsfiddle.net/Jmx7k/

<script>
jQuery(document).ready(function() {
    jQuery('#tabs2 li a:not(:first)').addClass('inactive');
    jQuery('.container:not(:first)').hide();

    jQuery('#tabs2 li a').click(function() {
        var t = jQuery(this).attr('href');
        if (jQuery(this).hasClass('inactive')) { //added to not animate when active
            jQuery('#tabs2 li a').addClass('inactive');
            jQuery(this).removeClass('inactive');
            jQuery('.container').hide();
            jQuery(t).fadeIn('slow');
         }
    return false;
}) //end click
});​
</script>
    <div id="tabs2holder">
        <ul id="tabs2">
        <li><a href="#tab1">Test Tab 1</a></li>
        <li><a href="#tab2">Test Tab 2</a></li>
    </ul>
</div>

<div class="container" id="tab1">
    This is test content for tab1
</div>


<div class="container" id="tab2">
     This is test content for tab2
</div>

有人能指出我添加此功能的正确方向,并解释为什么它目前不这样做吗?

谢谢

4

1 回答 1

4

好的,如果你想创建一个带有散列部分(例如'#tab2')的url,你可以得到这个值

var hash = location.hash; // hash = '#tab2'

像这样更改您的代码

jQuery(document).ready(function() {
    jQuery('#tabs2 li a:not(:first)').addClass('inactive');
    jQuery('.container:not(:first)').hide();

    jQuery('#tabs2 li a').click(function() {
        var t = jQuery(this).attr('href');
        if (jQuery(this).hasClass('inactive')) { //added to not animate when active
            jQuery('#tabs2 li a').addClass('inactive');
            jQuery(this).removeClass('inactive');
            jQuery('.container').hide();
            jQuery(t).fadeIn('slow');
        }
        return false;
    }); //end click

    if (location.hash == '#tab2') {
        // don't forget to put id-attributes to your li-elements
        jQuery('#tablink2 a').trigger('click');
    }
});​

另请参见此处: http: //jsfiddle.net/Jmx7k/8/ 由 jsfiddle 哈希属性不影响 javascript 区域 :-( 在正常上下文中尝试。

于 2012-12-18T09:27:08.810 回答