触发功能时点击/做出了积极一个jQuery UI选项卡?(Trigger a function wh

2019-06-26 06:03发布

我使用jQuery的标签,并在标签中的一个内容通过Ajax调用检索。 但我不希望触发调用,直到tab被点击(激活),因为用户可能不一定点击它。 什么是做到这一点的最好方法是什么?

jQuery UI的提供了selectshow为标签的事件,但是当任何选项卡中选择或显示,不只是特定这些火(据我所知)。

我也试着分配click事件特定标签的ID:

$("#my-tab").click(function(){
...
     $.post(URL, function(data){
          ...
     });
...
}

但是,这个看似没有效果,该呼叫不会被触发。

Answer 1:

UI的选项卡提供了当您选择一个选项卡,其功能被触发。

$( ".yourTab" ).tabs({
   select: function(event, ui) {
        if(ui.index == myTabIndex) {
            $.post(URL, function(data){
              ...
            });
        }
   }
});

注意使用activate的新版本。

参考



Answer 2:

该解决方案打勾不工作了,因为jQuery的用户界面发生了变化 。 你也需要调用整个标签集的标签功能,不只是一个标签。 而ui.index需要更换。 如果第二面板的ID为“TAB2”那么你可以使用:

$("#tabs").tabs({
    activate: function(event, ui) {
       if (ui.newPanel.selector == "#tab2") {
            alert("tab 2 selected");
       }
    }
});


Answer 3:

您可以尝试这样的事:

/*tab placeholder*/.tabs({
    select: function(event, ui) {
       if(ui.item.id === "my-tab"){
           //explicitly trigger mouse click on tab
           $(ui.item).trigger('click');
       }
    }
});
//------------------
$("#my-tab").click(function(){
    alert('something')
});


Answer 4:

select事件有一个ui参数,你可以检查index选择的选项卡中。 这太问题有很多例子: jQuery UI的选项卡获取当前选定的选项卡索引

那么你可以做的Ajax调用,当你已经检查了index选项卡。

编辑:您还可以在这里的官方jQuery UI的文档的例子很多: http://docs.jquery.com/UI/Tabs



文章来源: Trigger a function when a jQuery UI tab is clicked/made active?