2011-04-05 74 views
0

我用jQuery新手,jQuery的添加在页面加载显示要求标签功能

<script type="text/javascript" charset="utf-8"> 
    $(function() { 
     var tabContainers = $('div.tabs > div'); 
     tabContainers.hide().filter(':first').show(); 

     $('div.tabs ul.tabNavigation a').click(function() { 
      tabContainers.hide(); 
      tabContainers.filter(this.hash).show(); 
      $('div.tabs ul.tabNavigation a').removeClass('selected'); 
      $(this).addClass('selected'); 
      return false; 
     }).filter(':first').click(); 
    }); 


</script> 

我需要的是能够装载特定的标签时,打开一个和我已经用标签验证码网址,如: www.mysite.com/page.html#tab1

HTML链接看起来是这样的:

<a href="#tab1" class="selected">name link</a> 
<a href="#tab2" class="">name link2</a> 
<a href="#tab3" class="">name link3</a> 

我tryied很多的脚本,但也许是我的错(我是一个伙计与JavaScript)

预先感谢您

回答

0
  1. 你需要一个像<a href="#tab1">click to see tab1</a>

  2. 您需要将用户重定向到#TAB1锚所以你必须删除你的功能的return false;行,这将禁用重定向

  3. 当你单击了<a>时你的功能被触发,你需要再次触发它,当页面是在g负载

的功能将类似于

$(function(){ 
    onClickHandler = function() { 
     $('div.tabs > div').hide(); 
     $(window.location.hash).show(); 
    } 
    $('div.tabs ul.tabNavigation a').click(onClickHandler); 
    onClickHandler(); 
}); 
+0

谢谢,这个作品,但现在我必须点击标签两次去标签! – stefano 2011-04-05 13:38:13

+0

$(函数(){ \t \t \t变种tabContainers = $( 'div.tabs> DIV'); \t \t \t tabContainers.hide()滤波器(。 ':第一')显示(); \t \t \t \t \t \t $('div.tabs ul.tabNavigation a')。点击(函数(){ \t \t \t \t tabContainers.hide(); \t \t \t \t tabContainers.filter(this.hash).show(); \t \t \t \t $('div.tabs ul.tabNavigation一个').removeClass(' 选择 '); \t \t \t \t $(本).addClass(' 选择'); \t \t \t/* \t返回FALSE; */ \t \t \t})。filter(':first')。click(); \t \t \t onClickHandler = function(){ $('div.tabs> div')。hide(); $(window.location.hash).show(); } $('div.tabs ul.tabNavigation a')。click(onClickHandler); onClickHandler(); \t \t}); – stefano 2011-04-05 13:38:50

+0

现在第一个选项卡在页面加载时不会打开 – stefano 2011-04-05 13:39:52

0

你想用默认显示的标签应该有一类selected在你的HTML。所以应该关联内容包装。其他人不应该。

+0

第一个标签已经有了“选择”上载 – stefano 2011-04-05 13:42:04

1

JQuery-UI有一个tab-widget你可以使用。

比写自己更简单,更稳定。

对于不同的URL请看看this post

它告诉你如何利用UI主题和加载不同的URl。

否则你必须做的click事件的$('#theIdOfTheDiv').load(url)在标签

+0

类也没什么可说的请求通过URL – stefano 2011-04-05 13:42:23

+0

修订答案选项卡。 – Guidhouse 2011-04-06 04:29:52

0

window.location的具有散列属性。所以,你可以检查它是否为空,如果它不是空的,选择该选项卡:

if(!window.location.hash === "") 
    $(window.location.hash).show();