通过url分隔符打开Jquery标签

问题描述 投票:0回答:1

我正在尝试这样做,因此当一个人输入usercp.php#profile或usercp.php#settings之类的网址时,它将打开该选项卡。另一个问题是,选项卡href都是指向网站不同页面的所有URL。因此,基本上,代码是这样的。

<div id="tabs">
  <ul class="usercptabs">
    <li><a href="#tabs-1">Account Summary</a></li>
    <li><a href="usercp.php?action=profile">Customize Profile</a></li>
    <li><a href="usercp.php?action=options">Settings</a></li>
    <li><a href="usercp.php?action=usergroups">Usergroups</a></li>
    <li><a href="usercp.php?action=editlists">Friends</a></li>
    <li><a href="usercp.php?action=drafts">Drafts</a></li>
    <li><a href="usercp.php?action=alert_settings">Alert Settings</a></li>
    <li><a href="usercp.php?action=subscriptions">Thread Subscriptions</a></li>
  </ul>

如何完成?我在整个stackoverflow中尝试了不同的解决方案,但在这种情况下它们实际上并不起作用。

jQuery.noConflict();
jQuery(function() {
    jQuery("#tabs").tabs({
beforeLoad: function( event, ui ) {
      ui.panel.html('<center><img src="http://i.imgur.com/OZPnf**.gif" /></center>');
  }
 });

});
javascript jquery jquery-ui url tabs
1个回答
0
投票

window.location对象保存有关URL的所有信息,其中一个属性是hash

因此,您可以执行类似以下操作的操作,从而触发对匹配标签的点击:

jQuery(function ($) {

    /* your tab init code */    

    var hash = location.hash;
    if (hash && hash != '#') {
        hash=hash.substr(1); /* remove the "#" */
        $('#tabs a').filter(function () {
            return $(this).attr('href').indexOf(hash) > -1;
        }).click();/* click the matching tab */
    }
});

此解决方案假定将使用的哈希与URL的查询字符串中的action参数匹配。您有一个与问题profile相匹配的匹配项,而另一个仅与settings相匹配。如果它们不完全匹配,则需要进一步细化

© www.soinside.com 2019 - 2024. All rights reserved.