You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过jQuery Tab跳转到外部网页?

解决jQuery UI Tabs外部链接无法跳转的问题

嘿,这个问题我熟!核心原因是jQuery UI的Tabs组件会默认拦截所有标签页锚点的点击事件,不管你写的是内部锚点还是外部URL,它都会把点击当成内部标签页的切换操作来处理,所以直接放Google的链接自然没反应。

下面给你两种靠谱的修改方案,按需选就行:

方案1:拦截点击,手动处理外部链接

我们可以给Tabs里的锚点加个点击监听,判断如果是外部URL(不是以#开头的),就先阻止Tabs的默认切换行为,然后跳转到目标地址——你可以选当前窗口打开,或者新窗口打开。

修改后的JS代码是这样的:

jQuery(document).ready(function(){
    jQuery('#tabs').tabs();
    jQuery('#tabs1').tabs();
    jQuery('#tabs2').tabs();

    // 处理外部链接的点击事件
    jQuery('#tabs ul li a').on('click', function(e){
        var linkHref = jQuery(this).attr('href');
        // 检查是不是外部链接(不是内部锚点)
        if (linkHref.indexOf('#') !== 0) {
            e.preventDefault(); // 阻止Tabs默认的切换逻辑
            window.location.href = linkHref; // 当前窗口打开Google
            // 要是想新窗口打开,就换成这句:
            // window.open(linkHref, '_blank');
        }
    });
});

方案2:加target="_blank"并阻止默认行为

如果你本来就想在新窗口打开Google,那可以直接给链接加target="_blank",再通过事件阻止Tabs的默认处理,这样更直接:

首先改HTML里的Google链接:

<li><a href="https://www.google.com" target="_blank">Google</a></li>

然后添加对应的事件监听:

jQuery(document).ready(function(){
    jQuery('#tabs').tabs();
    jQuery('#tabs1').tabs();
    jQuery('#tabs2').tabs();

    // 针对带target="_blank"的链接做处理
    jQuery('#tabs ul li a[target="_blank"]').on('click', function(e){
        e.preventDefault(); // 不让Tabs把它当成内部标签
        window.open(jQuery(this).attr('href'), '_blank');
    });
});

完整可运行代码

下面是整合了方案1(当前窗口打开)的完整代码,直接复制就能用:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        jQuery(document).ready(function(){
            jQuery('#tabs').tabs();
            jQuery('#tabs1').tabs();
            jQuery('#tabs2').tabs();

            // 处理外部链接跳转
            jQuery('#tabs ul li a').on('click', function(e){
                var linkHref = jQuery(this).attr('href');
                if (linkHref.indexOf('#') !== 0) {
                    e.preventDefault();
                    window.location.href = linkHref;
                    // 新窗口打开请替换为:window.open(linkHref, '_blank');
                }
            });
        });
    </script>
</head>
<body>
    <div id="tabs">
        <ul>
            <li><a href="#tabs-1">Account</a></li>
            <li><a href="#tabs-2">Settings</a></li>
            <li><a href="https://www.google.com">Google</a></li>
        </ul>
        <!-- ACCOUNT -->
        <div id="tabs-1">
            <div id="tabs1">
                <ul>
                    <li><a href="#tabs-11">Edit</a></li>
                </ul>
                <div id="tabs-11">
                    <p>Content here...</p>
                </div>
            </div>
        </div>
        <!-- SETTINGS -->
        <div id="tabs-2">
            <div id="tabs2">
                <ul>
                    <li><a href="#tabs-21">Edit</a></li>
                </ul>
                <div id="tabs-21">
                    <p>Content here...</p>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

这样改完之后,点击Google标签页就能正常跳转到目标页面啦~

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:15:01