Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   При нажатии на таб автоматическое перелючение должно перейти на ручное (https://javascript.ru/forum/misc/75700-pri-nazhatii-na-tab-avtomaticheskoe-perelyuchenie-dolzhno-perejjti-na-ruchnoe.html)

lebigan 30.10.2018 16:32

При нажатии на таб автоматическое перелючение должно перейти на ручное
 
Добрый день! Есть скрипт для атоматического переключения табов. Как сделать так, что бы при нажатии на картинку таба, автоматический режим прекращался и переключать уже только вручную, до перезагрузки страницы.
div class="tabs">
 
 <ul class="tabNavigation">
 <li><a class="" href="#tabs-1">1</a></li>
 <li><a class="" href="#tabs-2">2</a></li>
 <li><a class="" href="#tabs-3">3</a></li>
 </ul>
 
 <div id="tabs-1">
img
 </div> 
 <div id="tabs-2">
img
  </div> 
 <div id="tabs-3">
img
 </div>
 </div>

$(function() {
    var t = 1;
    function switchTabs() {
        if (t > 3) t = 1;
        if (t == 1) $('div.tabs ul.tabNavigation li a[href="#tabs-1"]').click();
        if (t == 2) $('div.tabs ul.tabNavigation li a[href="#tabs-2"]').click();
        if (t == 3) $('div.tabs ul.tabNavigation li a[href="#tabs-3"]').click();
        t++;
    }
    var sw_tabs_timer1 = window.setInterval(switchTabs, 3000);
});

Nexus 30.10.2018 17:21

По клику на изображение выполнить этот код:
clearTimeout(sw_tabs_timer1);

Важно, чтобы переменная sw_tabs_timer1 была доступна в области видимости этого кода.

lebigan 30.10.2018 18:29

Цитата:

Сообщение от Nexus (Сообщение 497448)
По клику на изображение выполнить этот код:
clearTimeout(sw_tabs_timer1);

Важно, чтобы переменная sw_tabs_timer1 была доступна в области видимости этого кода.

то есть в функции, после условия срабатывания автоматического переключения прописывем эту переменую и должно заработать? я праильно понимаю?

Dilettante_Pro 30.10.2018 18:44

$(function() {
    var t = 1;
    function switchTabs() {
        if (t > 3) t = 1;
        if (t == 1) $('div.tabs ul.tabNavigation li a[href="#tabs-1"]').click();
        if (t == 2) $('div.tabs ul.tabNavigation li a[href="#tabs-2"]').click();
        if (t == 3) $('div.tabs ul.tabNavigation li a[href="#tabs-3"]').click();
        t++;
    }
    var sw_tabs_timer1 = window.setInterval(switchTabs, 3000);
   
   $('[id ^= "tabs-"]').one("click", function() {
          clearInterval(sw_tabs_timer1);  
    }
});

lebigan 30.10.2018 18:54

Цитата:

Сообщение от Dilettante_Pro (Сообщение 497462)
$(function() {
    var t = 1;
    function switchTabs() {
        if (t > 3) t = 1;
        if (t == 1) $('div.tabs ul.tabNavigation li a[href="#tabs-1"]').click();
        if (t == 2) $('div.tabs ul.tabNavigation li a[href="#tabs-2"]').click();
        if (t == 3) $('div.tabs ul.tabNavigation li a[href="#tabs-3"]').click();
        t++;
    }
    var sw_tabs_timer1 = window.setInterval(switchTabs, 3000);
   
   $('[id ^= "tabs-"]').one("click", function() {
          clearInterval(sw_tabs_timer1);  
    }
});

но так перестало срабатывать автоматическое переключение


Часовой пояс GMT +3, время: 06:28.