Выполнить функцию один раз (убрать обработчик)
Есть слайдер с ползунком.
$("#slider-range").slider({ range: "min", min: 0, max: 5900, value: 0, slide: function( event, ui ) { if(ui.value > 4600) {typeds();} } }); При значении > 4600 выполняется функция typeds. Как выполнить функцию typeds "единоразово" или открепить от нее обработчик. Проблема в том, что функция typeds() выполняется каждый раз, как значение > 4600. |
$("#slider-range").slider({ range: "min", min: 0, max: 5900, value: 0, flag: true, slide: function( event, ui ) { if($(this).slider('option', 'flag') && ui.value > 4600) {$(this).slider('option', 'flag', false); typeds();} } }); поправил код |
Poznakomlus, не работает
|
k_DizeL,
перенесите строку 6 в строку 0 var flag=true; |
Цитата:
|
laimas,
:) ок |
Поправил код :)
или так $("#slider-range").slider({ range: "min", min: 0, max: 5900, value: 0, slide: function (event, ui) { var flag = this.flag || false; if (!flag && ui.value > 4600) { this.flag = true; typeds(); } } }); |
А правильней всего как-то так:
$("#slider-range").slider({ range: "min", min: 0, max: 5900, value: 0, slide: function( event, ui ) { if(ui.value > 4600) { typeds(); $(this).slider( "option", "slide", null ); } } }); |
Aetae, в таком случае перестает работать функция ползунка.Poznakomlus, да действительно с var заработало, спасибо.
|
если сделать еще так, то запретим дальнейшее изменение ползунков
$("#slider-range").slider({ range: "min", min: 0, max: 5900, value: 0, slide: function( event, ui ) { if(ui.value > 4600) { $(this).slider( "option", "slide", function () { return false; }); typeds(); } } }); |
Часовой пояс GMT +3, время: 05:21. |