检测选项卡在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”处理程序)