2016-11-28 9 views
0

Я сделал выпадающее меню с предыдущим и последующим. Я хочу знать, как я могу автоматически изменить значение параметра раскрывающегося списка в течение каждых n секунд. https://jsfiddle.net/wmwayysz/Как автозапустить выпадающий вариант на каждые 30 секунд

<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">  
</script> 
<button type="button" id="prev">Previous</button> 
<select id="selectBox" onchange="currentSlide(value);" class="selectpicker"> 
<option value="1" class="options">Electronics</option> 
<option value="2" class="options">Clothing</option> 
<option value="3" class="options">Health</option> 
    <option value="4" class="options">Food</option> 
<option value="5" class="options">Travel</option> 
<option value="6" class="options">Mobiles</option> 
<option value="7" class="options">Grocery</option> 
<option value="8" class="options">Recharge</option> 
<option value="9" class="options">Furniture</option> 


Следующая

$.fn.loopNext = function(selector) { 
    var selector = selector || ''; 
    return this.next(selector).length ? this.next(selector) :  
    this.siblings(selector).addBack(selector).first(); 
    } 
    $.fn.loopPrev = function(selector) { 
    var selector = selector || ''; 
    return this.prev(selector).length ? this.prev(selector) :  
     this.siblings(selector).addBack(selector).last(); 
    } 
    $("#next").click(function() { 
    $('#selectBox > option:selected') 
     .removeAttr('selected') 
     .loopNext('option') 
      .prop('selected', 'selected'); 
    }); 

    $("#prev").click(function() { 
    $('#selectBox > option:selected') 
    .removeAttr('selected') 
     .loopPrev('option') 
     .prop('selected', 'selected'); 
    }); 

    function currentSlide(selectionValue) { 
     console.log(selectionValue); 
    } 

ответ

0

Вы должны вызвать такое же повторение кода после некоторого промежутка времени, который вы используете на следующий. Таким образом, общий код переходит в функцию. Вот скрипка для этого. https://jsfiddle.net/wmwayysz/2/

Вот Ваш обновленный код Javascript

$.fn.loopNext = function(selector) { 
    var selector = selector || ''; 
    return this.next(selector).length ? this.next(selector) : this.siblings(selector).addBack(selector).first(); 
} 
$.fn.loopPrev = function(selector) { 
    var selector = selector || ''; 
    return this.prev(selector).length ? this.prev(selector) : this.siblings(selector).addBack(selector).last(); 
} 
$("#next").click(funShowNext); 
setInterval(funShowNext,3000); 

function funShowNext() { 
    $('#selectBox > option:selected') 
    .removeAttr('selected') 
    .loopNext('option') 
     .prop('selected', 'selected'); 
} 

$("#prev").click(function() { 
    $('#selectBox > option:selected') 
    .removeAttr('selected') 
    .loopPrev('option') 
     .prop('selected', 'selected'); 
}); 

function currentSlide(selectionValue) { 
    console.log(selectionValue); 
} 
+0

его работы только один раз от электроники до одежды –

1

Попробуйте

setInterval(function() { 
    $('#next').trigger('click'); 
}, 30000)