我使用jQuery的标签,并在标签中的一个内容通过Ajax调用检索。 但我不希望触发调用,直到tab被点击(激活),因为用户可能不一定点击它。 什么是做到这一点的最好方法是什么?
jQuery UI的提供了select
和show
为标签的事件,但是当任何选项卡中选择或显示,不只是特定这些火(据我所知)。
我也试着分配click
事件特定标签的ID:
$("#my-tab").click(function(){
...
$.post(URL, function(data){
...
});
...
}
但是,这个看似没有效果,该呼叫不会被触发。
UI的选项卡提供了当您选择一个选项卡,其功能被触发。
$( ".yourTab" ).tabs({
select: function(event, ui) {
if(ui.index == myTabIndex) {
$.post(URL, function(data){
...
});
}
}
});
注意使用activate
的新版本。
参考
该解决方案打勾不工作了,因为jQuery的用户界面发生了变化 。 你也需要调用整个标签集的标签功能,不只是一个标签。 而ui.index需要更换。 如果第二面板的ID为“TAB2”那么你可以使用:
$("#tabs").tabs({
activate: function(event, ui) {
if (ui.newPanel.selector == "#tab2") {
alert("tab 2 selected");
}
}
});
您可以尝试这样的事:
/*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')
});
在select
事件有一个ui
参数,你可以检查index
选择的选项卡中。 这太问题有很多例子: jQuery UI的选项卡获取当前选定的选项卡索引
那么你可以做的Ajax调用,当你已经检查了index
选项卡。
编辑:您还可以在这里的官方jQuery UI的文档的例子很多: http://docs.jquery.com/UI/Tabs