jQuery选项卡";“加载”;方法不起作用
我有一个函数,它运行一个ajax请求onClick并创建一个新选项卡,其中包含加载的数据。它工作正常,但为了更好的用户体验,我正在尝试在函数完成后加载选项卡,这样用户就不必单击新创建的选项卡 代码如下:jQuery选项卡";“加载”;方法不起作用,jquery,tabs,Jquery,Tabs,我有一个函数,它运行一个ajax请求onClick并创建一个新选项卡,其中包含加载的数据。它工作正常,但为了更好的用户体验,我正在尝试在函数完成后加载选项卡,这样用户就不必单击新创建的选项卡 代码如下: function addTab(id, name, action) { var tabs = $( "#tabs" ).tabs(); var tabTemplate = "<li style='max-height:32px;'><a href='#"+id+"'>
function addTab(id, name, action) {
var tabs = $( "#tabs" ).tabs();
var tabTemplate = "<li style='max-height:32px;'><a href='#"+id+"'>"+name+"</a> <span class='ui-icon ui-icon-close' onclick='removeTab()' role='presentation'>Remove Tab</span></li>";
tabs.find( ".ui-tabs-nav" ).append(tabTemplate);
$.ajax({
type: 'GET',
url: action+'?id='+id,
data: { get_param: 'value' },
dataType: "text",
success: function(data) {var j = $.parseJSON(data);
tabs.append(
//formatting json response
);
}
});
tabs.tabs( "refresh" );
$("#tabs").tabs("load", "#"+id); //this thing is not working
}
函数添加选项卡(id、名称、操作){
var tabs=$(“#tabs”).tabs();
var tabTemplate=“
这可能是由于ajax请求的异步调用造成的<代码>$(“#选项卡”).tabs(“加载”、“#”+id)代码>将在发送ajax响应之前执行。将所有依赖于响应的内容放入success函数,它就会工作。就你而言:
函数添加选项卡(id、名称、操作){
var tabs=$(“#tabs”).tabs();
var tabTemplate=“
该方法不能像宣传的那样工作(我使用的是v1.12.1),需要从他们的文档中删除IMHO。另一方面,启动方法起作用
$( "#tabs" ).tabs({active: 1});
这将切换到第二个选项卡。但是看到文档和,下面的代码可能是更合适的方法:
$( "#tabs" ).tabs( "option", "active", 1 );
不幸的是,无论采用哪种方法,我们都必须传递选项卡的索引号,并且不能使用分配给选项卡的id值,这是“加载”的关键功能,如果它起作用的话。
“#5”
不是索引,而是id。该方法需要索引。还请注意,在这种情况下,似乎您将“加载”在该选项卡存在之前将其删除。您还将在它存在之前刷新它。我明白了。但是我如何找到最后创建的标签的索引呢?它将是ul中包含标签的li的索引。但是,由于您正在追加,因此可以安全地假设索引也等于制表符数减去1。这是有意义的。让我试试看,这实际上让事情变得更糟了。