jQuery选项卡";“加载”;方法不起作用

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+"'>

我有一个函数,它运行一个ajax请求onClick并创建一个新选项卡,其中包含加载的数据。它工作正常,但为了更好的用户体验,我正在尝试在函数完成后加载选项卡,这样用户就不必单击新创建的选项卡

代码如下:

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。这是有意义的。让我试试看,这实际上让事情变得更糟了。