检测选项卡在jQueryUI下被选中

我试图检测何时单击我的jQueryui选项卡组件上的新选项卡。 我已经关注了几个指南和博客,但无法围绕这个过程。 我有以下内容:

$('#tabs').tabs({ select: function(event,ui) { alert('selected'); return false; }, }); 

我不知道我错过了什么,但警报从未发生过。 我对jQuery并不坚强,所以我可能犯了一个愚蠢的错误,所以任何帮助都会受到赞赏。

谢谢,克里斯

更新:jsfiddle示例http://jsfiddle.net/T7czp/16/

你有任何错误吗? select之后的尾随将在某些浏览器中破坏脚本。

这就像在这个小提琴中看到的那样: http : //jsfiddle.net/T7czp/15/

 $('#tabs').tabs({ select: function(event,ui) { alert('selected: '+ui.index); } }); 

最新版本使用

 $('#tabs').tabs({ activate: function(event,ui) { alert('selected: '+ui.index); } }); 

您需要将事件绑定到选项卡。

 $("#tabs").bind("tabsselect", function(e, tab) { alert("The tab at index " + tab.index + " was selected"); }); 

自上次接受的答案以来,jquery UI似乎略有改变。

teh activate函数中定义的ui参数现在是一个与此类似的对象:

对象{oldTab = {…},oldPanel = {…},newTab = {…},更多…}

索引方法在每个内部。 所以更新的访问方法是:

 $('#tabs').tabs({ activate: function(event,ui) { alert('selected: '+ui.newTab.index()); } }); 

@Kristofer

你的代码是正确的。

为了选择选项卡,您必须删除的唯一内容是以下行:

 return false; 

因为根据Tabs组件文档 :

请注意,如果tabsselect事件的处理程序返回false,则单击的选项卡将不会被选中(例如,如果切换到下一个选项卡需要表单validation,则很有用)。

(“tabselect”事件对应于“select”处理程序)