如何在Jquery UI选项卡中获取选定的选项卡面板元素?

Mat*_*cak 5 tabs jquery-ui

问题.我有多个标签,它们的内容是通过ajax加载的,因此标签面板的div id是动态分配的.我有一个表单在一个,由这个jquery插件通过绑定到tabs.load事件的回调函数ajaxified我传递一个参数,ui.panel,以便ajaxForm()知道目标在哪里加载结果:

function initAjaxForms(loadtab)
{
   $('form').ajaxForm({target:loadtab, success:initAjaxForms});
} 
Run Code Online (Sandbox Code Playgroud)

这工作正常,除了当我提交表单并且PHP将其返回为无效时,我不能再对其进行ajaxify(当然,该函数是在没有loadtab参数的情况下调用的).完美的解决方案是为标签提供更多选项,以便我可以这样做:

function initAjaxForms()
{
   var selected = $('tabs').tabs('option', 'selectedpanel');
   $('form').ajaxForm({target:selectedpanel, success:initAjaxForms});
} 
Run Code Online (Sandbox Code Playgroud)

但这显然不是这样.有任何想法吗?

dev*_*n_s 17

选择未使用.ui-tabs-hide隐藏的.ui-tabs-panel:

var selectedPanel = $("#tabs div.ui-tabs-panel:not(.ui-tabs-hide)");
Run Code Online (Sandbox Code Playgroud)

  • 应更新为:var selectedPanel = $("#tabs div.ui-tabs-panel:visible"); (7认同)

Tyl*_*ong 11

也许jqueryUI已经改变,接受的答案对我不起作用.这是有效的:

$("#tabs div.ui-tabs-panel[aria-hidden='false']")
Run Code Online (Sandbox Code Playgroud)