IvanIlyasov
@IvanIlyasov
Познаю мир

Как отследить изменение поля (input), если оно изменено с помощью Jquery Slider UI?

Делаю калькулятор. Ползунок изменяет значение поля input, но калькулятор не видит изменения в этом поле, поскольку изменение привязано к событию .change(). Но.. Цитирую: "Данное событие обычно активируется, когда элемент типа input теряет фокус ввода и при этом изменилось значение элемента с момента получения фокуса."

Пытался подключить плагин jQuery Text Change, стало еще лучше. Значение калькулятора стало меняться мгновенно при изменении input-поля, но только если делать данное действие вручную. Если поле меняет ползунок, всё равно не работает калькулятор.

Демо тут: jsfiddle.net/ckntr2jy
  • Вопрос задан
  • 6428 просмотров
Решения вопроса 1
Ronnie_Gardocki
@Ronnie_Gardocki
Я у мамы фронтендщик.
Ух, чет я давно не купался в таком жутком коде :)
К сожалению на рефакторинг этого чуда у меня сил не хватило, так что вот что получилось в итоге:
jsfiddle.net/ckntr2jy/1
В общем я допилил логику работы двух методов слайдера
slide: function( event, ui ) {
  $( "#slider-result" ).html( ui.value );
  $('#area').val(ui.value).trigger("change");  // тут добавлен триггер change ивента
},
change: function(event, ui) { 
  $('#area').val(ui.value).trigger("change");
}

Теперь при слайдинге в реалтайме меняются циферки, а не только когда отпускаешь слайдер.
Совет: изучи синтаксис jQuery и посмотри чужой код. Такое ощущение что это экземпляр из 2008 года.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы