Событие jQuery onchange in tabs

#javascript #jquery

#javascript #jquery ( jquery )

Вопрос:

Кто-нибудь знает, как запустить событие, когда я переключаюсь с одной вкладки на другую в jQuery?

например:

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

Комментарии:

1. Виджет вкладок пользовательского интерфейса jQuery? Кстати, ваш код JavaScript не имеет смысла с точки зрения синтаксиса.

2. Вы здесь не новичок, вы должны знать, чтобы предоставить больше информации и точно определить, что вы хотите.

Ответ №1:

Пользовательский интерфейс jQuery???

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

Комментарии:

1. Забавно, что этот обратный вызов происходит до того, как произойдет фактическое событие смены вкладки. Мне пришлось обойти это, обернув мой фактический обратный вызов в setTimeout : (

2. Возможно, вы могли бы использовать событие «активировать», в документах сказано, что оно срабатывает после завершения анимации 😉

Ответ №2:

 $(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);
                } });
 

Ответ №3:

Работа для меня

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');
});