Выполнить функцию один раз (убрать обработчик)
Есть слайдер с ползунком.
$("#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, время: 18:22. |