首页 > 解决方案 > 创建后显示新的 Jquery UI 选项卡

问题描述

当用户添加新选项卡时,我试图让 jQuery UI 选项卡在浏览器中显示(打开与选项卡关联的面板)。目前这就是我的标签添加功能的样子。

let tabs = $("#tabs")
        .tabs({
            heightStyle: "content",
        })
        .on("click", ".delete-tab", function () {
            let panelName = $(this).closest("li").children('a').text();
            $('#deleteLocationModal').addClass('open');
            $('.locationNameHere').text(panelName);
            tabDelete = $(this).closest("li");
            deleteLocationNum = $(this).attr('data-locNum');
            console.log(deleteLocationNum);
        });

let locationNum = 1; //Tracks the number of tabs created, NOT the number of tabs on the screen

/**
 * Create a new tab
 * Create a new panel
 */
$("#addTab").on("click", function (evt) {
    /*addTab();*/
    locationNum++;
    let newTab = (generateTab(locationNum));
    $("#tabs").find("#addTab").before(newTab);
    let newPanel = (generatePanel(locationNum));
    $("#tabs").append(newPanel);
    $('#tabs').tabs("refresh");
    evt.preventDefault();
});

function generateTab(num) {
        return '<li class="tab"><a href="#location_' + num + '">New Location</a> <span data-locNum="' + num + '" class="delete-tab">&times;</span></li>';

    }

我曾尝试查看文档,但并不清楚在创建任何选项卡时显示选项卡的命令是什么。

标签: jqueryjquery-uijquery-ui-tabs

解决方案


您可以使用 jQuery 选择器而不是实际的 DOM 元素或操作选项卡对象来将某个选项卡设置为活动选项卡。

使用 jQuery 选择器:

function generateTab() {
  return $('<li>Some Tab</li>');
}

接着

$tab = generateTab();
$tab.someFocusFunction();

直接修改 tabs 对象:

$('#tabs').tabs({ 
  active: $tab.attr('id');
});

推荐阅读