如何在jquery tab的当前活动标签上触发('click')

v8wbuo2f  于 2022-12-18  发布在  jQuery
关注(0)|答案(3)|浏览(183)

我有一个制表屏幕,并希望触发点击选定的选项卡,一旦提交的形式和回报是有效的。这里的html的一部分:

<ul id="tabUL" class="tabs js-tabs same-height">
    <li class="current">
        <a class="tabLink" href="#tabProducts" data-url="/bla/bla">Products</a>
    </li>
</ul>

我的成功指令是:

success: function(data, textStatus, XMLHttpRequest) {
    $('#tabUL').find('li.current a').trigger('click');
}

这似乎不起作用...任何帮助都很感激:)问候安德里亚

k0pti3hp

k0pti3hp1#

尝试使用a[href=""]选择器:

$('#tabUL a[href="#tabProducts"]').trigger('click');

我整理了一个jsfiddle demo来展示它的运行情况,以及如何选择性地隐藏其他选项卡,因为当我通过编程强制选项卡时,通常需要在解锁其他选项卡之前在初始选项卡上输入缺少的强制信息...

编辑以下是jsfiddle的内容:

超文本标记语言

<div id="tabs">
  <ul>
    <li><a href="#tab0">Address</a></li>
    <li><a href="#tab1">Shipping</a></li>
    <li><a href="#tab2">Parts</a></li>
    <li><a href="#tab3">Datasheets</a></li>
  </ul>
  <div id="tab0">
        <h1>This is the first tab (0)</h1>
  </div>
  <div id="tab1">
     <h1>This is the second tab (1)</h1>
  </div>
  <div id="tab2">
     <h1>This is the third tab (2)</h1>
  </div>
  <div id="tab3">
     <h1>This is the fourth tab (3)</h1>
  </div>
</div>
<br/>
Select the
<select id="tabSelect">
  <option value="0">1st</option>
  <option value="1">2nd</option>
  <option value="2">3rd</option>
  <option value="3">4th</option>
</select>Tab and
<input type="checkbox" id="tabHide" checked="checked" /> Lock the Others

jQuery语言

$(document).ready(function () {
  $('#tabs').tabs();
  $('#tabSelect').change(function () {
        //pass empty array to unlock any locked tabs
    $('#tabs').tabs({disabled: []}).find('a[href="#tab' + $(this).val() + '"]').trigger('click');

    if ($('#tabHide').prop('checked')) {
      //hide will be an array like [0,2,3]
      var hide = Array();
      $('#tabs li').not('.ui-tabs-active').each(function () {
        hide.push($(this).index());
      });      
      $('#tabs').tabs({disabled: hide});
    }
  });
});

blmhpbnm

blmhpbnm2#

如果你想以编程方式重新加载标签,那么我建议使用Jquery Tab API实用程序,如下所示:这将激活第一个选项卡,然后激活第二个选项卡,非常简单,并且还会引发直接单击时通常会引发的事件。

$( "#myTabs" ).tabs( "option", "active", 0 );

$( "#myTabss" ).tabs( "option", "active", 1 );

你也可以捕捉标签活动事件,如下面执行任何操作

$( "#myTabs" ).on( "tabsactivate", function( event, ui ) {
    // your custom code on tab click
});
kh212irz

kh212irz3#

与其尝试触发单击事件本身(我认为在这种情况下不可能通过编程调用用户事件),不如触发在单击事件时必须调用的函数,您可能需要研究triggerHandler

相关问题