jQuery模拟单击选项卡执行代码

下面的代码,当我单击选项卡时,我会发布一个post并在选项卡中显示结果。 在某些情况下,我想强制选中选项卡,但不仅要选择选项卡,还要选择选项卡+执行单击时执行的代码。

在我的例子中,我喜欢选择第二个选项卡(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:

  

我怎样才能做到这一点 ?

谢谢,

Update1:​​我尝试使用这段代码: $('#tabs').tabsClick(1); 但没有工作,样本来自这里http://www.eduteka.org/ajax/tabs3/

要以编程方式选择选项卡,请使用jLikeToSet arg调用此函数:

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

执行此function时,就好像你已经手动选择了一样,所以内部的.bind('tabsselect'将被执行。

尝试在ready事件中添加此脚本,并在创建选项卡后:

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

我自己会将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); }); }); }); 

根据您的用户,最好提供选项卡名称,以便用户可以直接转到它们,例如https://www.example.com#documents

然后你可以改变你的html来反映这一点,并使“点击”更容易

  

因此,要选择文档选项卡,您在jQuery中需要做的就是:

 $('#documents_click).click();