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); }); }); });