15.10.2016, 22:43
|
Аспирант
|
|
Регистрация: 20.02.2015
Сообщений: 54
|
|
Выполнить функцию один раз (убрать обработчик)
Есть слайдер с ползунком.
$("#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.
|
|
15.10.2016, 22:47
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
$("#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();}
}
});
поправил код
Последний раз редактировалось Vlasenko Fedor, 15.10.2016 в 23:26.
|
|
15.10.2016, 22:59
|
Аспирант
|
|
Регистрация: 20.02.2015
Сообщений: 54
|
|
Poznakomlus, не работает
|
|
15.10.2016, 23:11
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
k_DizeL,
перенесите строку 6 в строку 0 var flag=true;
Последний раз редактировалось рони, 15.10.2016 в 23:24.
|
|
15.10.2016, 23:13
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от рони
|
var falg=true
|
Случаем не flag?
|
|
15.10.2016, 23:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
laimas,
ок
|
|
15.10.2016, 23:24
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Поправил код
или так
$("#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();
}
}
});
Последний раз редактировалось Vlasenko Fedor, 15.10.2016 в 23:37.
|
|
16.10.2016, 00:36
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
А правильней всего как-то так:
$("#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 );
}
}
});
__________________
29375, 35
|
|
16.10.2016, 00:55
|
Аспирант
|
|
Регистрация: 20.02.2015
Сообщений: 54
|
|
Aetae, в таком случае перестает работать функция ползунка.Poznakomlus, да действительно с var заработало, спасибо.
|
|
16.10.2016, 00:56
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
если сделать еще так, то запретим дальнейшее изменение ползунков
$("#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();
}
}
});
|
|
|
|