2011-03-31 70 views
3

下面的代码,当我点击一个标签,我做了一个帖子,并显示在选项卡中的结果。在某些情况下,我想强制选中的选项卡,但不仅选择选项卡,而且选择选项卡+执行单击时执行的代码。jQuery模拟点击代码执行的标签

以我为例,我喜欢选择第二选项卡(jLikeToSet = 1),并执行该代码:

$.post('/Home/e2', function (data) { 
     $('#tabs-2').html(data); 
}); 

的jQuery:

var $tabs = $("#tabs").tabs(); 
    var jLikeToSet = 1 
    $("#tabs").bind('tabsselect', function (event, ui) { 
     switch (ui.index) { 
      case 0: 
       $.post('/Home/e1', function (data) { 
        $('#tabs-1').html(data); 
       }); 
       break; 
      case 1: 
       $.post('/Home/e2', function (data) { 
        $('#tabs-2').html(data); 
       }); 
       break; 
      case 2: 
       $.post('/Home/e3', function (data) { 
        $('#tabs-3').html(data); 
       }); 
       break; 
     } 
    }); 

HTML:

<div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1">Screen 1</a></li> 
     <li><a href="#tabs-2">Screen 2</a></li> 
     <li><a href="#tabs-3">Screen 3</a></li> 
    </ul> 
    <div id="tabs-1"></div> 
    <div id="tabs-2"></div> 
    <div id="tabs-3"></div> 
</div> 

如何我可以这样做吗?

感谢,

UPDATE1: 我试图用这个代码: $('#tabs').tabsClick(1);但没有工作,样品来自这里http://www.eduteka.org/ajax/tabs3/

回答

6

要以编程方式选择标签,调用这个函数与 ARG:

function selectTab(jLikeToSet){ 
    $("#tabs").tabs("select" , jLikeToSet); 
} 

当执行此功能时,就好像您已手动选择,因此.bind('tabsselect'内部会执行编辑。

+0

这比我已经发布了一个干净多了。我并不知道选择选项。 +1 – Chandu 2011-03-31 20:07:37

+0

与此代码,我选择标签(jLikeToset中的索引),但是当我点击标签时没有任何事情发生。在某些情况下,我想设置一个选项卡并执行coede ...你的解决方案是可以的,但是当我点击选项卡时我也需要能够执行代码。 – 2011-03-31 20:24:59

+0

仅供参考,我用“e1”,“e2”...但可以是“aaaa”,“bbbb”,“azerty” – 2011-03-31 20:31:34

0

尝试在ready事件和标签后添加此脚本创建:

$('#tabs-' + (jLikeToSet + 1) + ' a').click(); 
+0

它不仅在tabs-2中,而且在索引存储在jLikeToSet中,在这种情况下为1,但可以是0或2 – 2011-03-31 20:03:54

+0

@Kris:Manji发布的解决方案是更好的解决方案。你需要做的一个小改变就是以这种方式使用它:$(“#tabs”)。tabs(“select”,jLikeToSet); – Chandu 2011-03-31 20:08:59

0

我自己会改变jQuery的以下内容:

$(document).ready(function() { 
    var $tabs = $("#tabs").tabs(); 
    $('#tabs li a').click(function(){ 
     $.post('/Home/e'+location.hash.replace('#tabs-',''), function (data) { 
      $(location.hash).html(data); 
     }); 
    }); 
}); 
0

根据您的用户,它可能更好地给你的标签名称,所以用户可以直接去他们,如https://www.example.com#documents

然后,你可以改变你的HTML反映,并使“点击“更容易

<div id="tabs"> 
    <ul> 
     <li><a id="documents_click" href="#documents">Documents</a></li> 
     <li><a id="videos_click" href="#videos">Videos</a></li> 
     <li><a id="profile_click" href="#profile">Profile</a></li> 
    </ul> 
    <div id="documents"></div> 
    <div id="videos"></div> 
    <div id="profile"></div> 
</div> 

所以要选择文档选项卡,所有你需要的jQuery做的是:

$('#documents_click).click();