选项卡中的JQuery onchange事件

12

有人知道如何在jQuery中在从一个选项卡切换到另一个选项卡时触发事件吗?

例如:

<li><a href="#tab-1" onclick="submitForm();" onchange="myJSHere();">Tab</a></li>

1
jQuery UI Tabs小部件?顺便说一下,你的JavaScript代码在语法方面毫无意义。 - pimvdb
4
你不是新人了,应该知道提供更多信息并明确定义你想要的内容。 - Madara's Ghost
5个回答

28

jQuery ui ???

$("#tabs").tabs({
    select: function(event, ui) {
        alert("PRESSED TAB!");
    }
});

令人啼笑皆非的是,这个回调发生在实际的标签切换事件之前。为了解决这个问题,我不得不用setTimeout来包装我的真正的回调函数 :( - hughes
4
也许你可以使用"activate"事件,DOCS中说明它在动画完成后触发。;-) - Marco Johannesen

18
$(function() {
    $( "#tabs" ).tabs({ activate: function(event ,ui){
                    //console.log(event);
                    //alert(  ui.newTab.index());
        alert( ui.newTab.attr('li',"innerHTML")[0].getElementsByTagName("a")[0].innerHTML);
        //alert( this.text);
                } });

8

Work for me

HTML:

<div id="tabs">
    <ul class="nav nav-tabs">
        <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
        <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
        <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
    </ul>

    <div class="tab-content">
        <div id="home" class="tab-pane fade in active">
            <h3>HOME</h3>
            <p>Some content.</p>
        </div>
        <div id="menu1" class="tab-pane fade">
            <h3>Menu 1</h3>
            <p>Some content in menu 1.</p>
        </div>
        <div id="menu2" class="tab-pane fade">
            <h3>Menu 2</h3>
            <p>Some content in menu 2.</p>
        </div>
    </div>
</div>

脚本

<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script>
    $("#tabs").tabs({
        activate: function(event, ui) {
            alert("PRESSED TAB!");
        }
    });
</script>

4

我的解决方案是点击事件监听器。

解决方案:

$('.nav-tabs li').click(function () { 
  alert('Tab Clicked');
});

使用HTML的完整解决方案。

HTML

<div id="tabs">
        <ul class="nav nav-tabs">
            <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
            <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
            <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
        </ul>

    <div class="tab-content">
        <div id="home" class="tab-pane fade in active">
            <h3>HOME</h3>
            <p>Some content.</p>
        </div>
        <div id="menu1" class="tab-pane fade">
            <h3>Menu 1</h3>
            <p>Some content in menu 1.</p>
        </div>
        <div id="menu2" class="tab-pane fade">
            <h3>Menu 2</h3>
            <p>Some content in menu 2.</p>
        </div>
    </div>
</div>

脚本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$('.nav-tabs li').click(function () { 
  alert('Tab Clicked');
});

0

如果有人遇到jquery手风琴在选项卡内无法正确显示的问题(特别是在操作手风琴内容后),下面的代码片段可以解决这个问题。注释行只是为了让您重新创建整个手风琴。

        $("#tabs").tabs({
            activate: function(event, ui) {

                // $( ".accordion" ).accordion('destroy').accordion().accordion( "refresh" );
                $( ".accordion" ).accordion( "refresh" );
            }
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接