如何检测#tabs-N是否单击

时间:2014-09-18 01:33:58

标签: javascript jquery

var isClicked = false;
$("a[href='#tabs-1']").off("click").on("click",function(){
    alert("tab 1 is click");    
    isClicked = true; // dont want to use like this.
});

单击选项卡时,我有此代码。我的问题是我怎么能像这样编码检查选项卡被点击? 我有这段代码片段。

if(#tabs-1' is clicked){ // do this}

有人可以指出我的解决方案。此外,我确实计划有一个布尔变量可能有帮助,但我正在寻找jquery代码来解决这个问题(如果有)。

请参阅此FIDDLE了解演示。

3 个答案:

答案 0 :(得分:1)

怎么样:

$('#tabs').tabs({
    select: function(event, ui) {
                console.log($(ui.tab)); // the tab selected
                alert(ui.index);
            }
});

Check this solution.

答案 1 :(得分:1)

如果您需要从每个标签访问某些自定义数据,您只需添加一个属性并在activate上获取:


HTML:

<div id="tabs">
    <ul>
        <li ifselected="Tab 1 is selected"><a href="#tabs-1">Nunc tincidunt</a></li>
        <li ifselected="Tab 2 is selected"><a href="#tabs-2">Proin dolor</a></li>
        <li ifselected="Tab 3 is selected"><a href="#tabs-3">Aenean lacinia</a></li>
    </ul>
<!-- ... -->


的Javascript:

$(function() {
    $('#tabs').tabs({
        activate: function(event, ui) {
            alert($(ui.newTab).attr('ifselected'));
        }
    });
});


这是 fiddle

编辑:

通话功能:

$(function() {
    var tabfuncs = [
        () => alert("Tab 1 is selected"),
        () => alert("Tab 2 is selected"),
        () => alert("Tab 3 is selected")
    ];
    $('#tabs').tabs({
        activate: function(event, ui) {
            tabfuncs[$(ui.newTab).index()]();
        }
    });
});

另一个 fiddle

答案 2 :(得分:0)

我明白你想要在单击选项卡之后放置一些逻辑,并希望执行某些逻辑,然后首先必须声明全局字符串变量而不是包含 #tab 的ID或标题的本地布尔变量,如下面的代码段

window.tabclicked = "";

然后你必须为变量分配点击标签的id,如下所示

 $(function () {
            $("#tabs").tabs();
            $("a[href='#tabs-1']").off("click").on("click", function () {
                tabclicked = $(this).prop('href');
            });
        });

然后你可以为你使用switch语句

switch (tabclicked)
        {
            case "#tab1":
                {
                    // your logic here
                    break;
                }
            default:
                break;
        }