2010-04-08 76 views

回答

3

Select event: This event is triggered when clicking a tab.

如果你想不同的功能添加到每个选项卡,你可以给每个锚onclick事件。

<ul> 
    <li><a href="#tabs-1" onclick="function1();">Nunc tincidunt</a></li> 
    <li><a href="#tabs-2" onclick="function2();">Proin dolor</a></li> 
    <li><a href="#tabs-3" onclick="function3();">Aenean lacinia</a></li> 
</ul> 
.... 

<script type="text/javascript"> 

    $(document).ready(function(){ 
     $(".selector").tabs(); 
    }); 

    function function1(){ 
     // your code here 
    } 

    function function2(){ 
     // your code here 
    } 

    function function3(){ 
     // your code here 
    } 
</script 
+0

我不认为我解释得不够好。假设我有4个选项卡。我想为每个4个选项卡启动一个不同的功能。事件功能似乎只能够为选定的所有选项卡启动相同的代码...并非个别选项卡 – Nicki 2010-04-08 03:13:23

0

怎么是这样的:

$('#example').tabs({ 
    select: function(event, ui) { 
     var $tabs = $('#example').tabs(); 

     // Gets the currently selected tab. 
     var selected = $tabs.tabs('option', 'selected'); 

     // Run a switch on that selected tab and do what you need depending 
     // on which tab was selected. 
     switch(selected){ 
      case 0: 
       break; 
      case 1: 
       break; 
      case 2: 
       break; 
      case 3: 
       break; 
     } 
    } 
}); 

有可能是一个更漂亮的解决方案,但这应该在技术上做你所需要的。

编辑:如果您使用静态选项卡,这工作得很好。如果你有可能的动态标签,然后使用这样的事情:

$("#tabID").click(function(){ 
    do something here...; 
}); 
+0

这就是各种各样的恶魔。你最好把函数名称作为一个属性放到锚点上,使用var fname = $(ui.tab).attr(“[无论你称为属性]”)来检索它,在函数列表中找到它并执行它窗口[fname]() – R0MANARMY 2010-04-08 13:00:20

+0

不知道为什么这将是邪恶的。它是侦听一个事件触发并确定哪个选项卡被动态选择的动态方式,然后调用正确的函数或代码块。这是对事件触发作出反应的正确方法。 通过使用内联“onclick”,您正在做类似的事情,但维护起来更困难,更容易出现问题。整个JavaScript社区现在已经脱离了内嵌JavaScript。 – FallenRayne 2010-04-08 22:17:31

+0

这是邪恶的,因为你将行为链接到任意索引而不是与它们相关的元素。如果您稍后添加重新排列选项卡或具有条件选项卡的能力,它也会突破。 – R0MANARMY 2010-04-09 16:23:30