调用 jquery 选项卡激活函数不在单击事件上

Call jquery tab activate function not on a click event

本文关键字:单击 事件 激活函数 jquery 选项 调用      更新时间:2023-09-26

我正在使用一个加载大量数据的页面。我正在努力使其更加用户友好,现在,它只是加载所有内容,我想让它只加载框架,然后在打开特定选项卡时加载信息。这行得通。但是,我还想利用jquery的功能,使用url哈希片段自动打开选项卡。这也可以工作,只是在这种情况下不调用下面定义的 on select 函数。

$("#tabs").tabs({
    show: function(event, ui) {
        $('#tabs ul li a').click(function () {
            var sSelectedTab = updateUrl($(this).attr('href'));
            // Get the current vertical scroll position
            var iCurrentWindowPosition = $(window).scrollTop();
            location.hash = sSelectedTab;
            // Put the vertical scrolled position back to where it was
            $(window).scrollTop(iCurrentWindowPosition);
        });
    },
    select: function(event, ui) {
            switch (ui.index) {
                case 1:
                    // Corresponds to "Drives" tab
                    createSpinAnimation("#tabs");
                    $.post("ajax_api.php",
                        {
                            sAction: "loadData1"
                        },
                        function(data) {
                            //do things with data here
                        }
                    );
                    break;
             }
     }
});

我尝试以编程方式单击选项卡($('#tabs a[href="' + location.hash + '"]').click()),但是由于该选项卡已被选中并处于活动状态,因此单击将被忽略。如何在单击时从选项卡外部调用 select: 函数?

我不是 100% 确定您要完成什么,但我可以为您提供有关如何从选项卡内部外部调用 select 的部分答案。

$('#tabs').tabs("instance").select(null, {index: 0});

$('#tabs').tabs("select", null, {index: 0});

我认为这可能有助于您深入了解以对象方式访问任何 ui 函数。

一个。