#jquery
#jquery ( jquery )
Вопрос:
Обычно, когда пользователь выбирает элемент в a <select>
, запускается событие ‘change’. Однако, когда вы меняете значение того же <select>
значения с $('select').val('something')
помощью , событие не запускается.
Я знаю, что мог бы это сделать, $('select').val('something').trigger('change');
но это не та проблема, которую я пытаюсь решить…
Есть ли способ заставить событие изменения работать, не вызывая его вручную?
Я собрал быстрый JsFiddle, чтобы лучше объяснить проблему, проверьте это:
Ваше здоровье
Комментарии:
1. «без ручного запуска» … нет.
2. короткий ответ: нет, используйте trigger()
3. Какую проблему вы пытаетесь решить?
.val()
не буду этого делать.
Ответ №1:
Это невозможно, если только вы вручную не запустите функцию изменения. Если вам не нравится вводить этот код несколько раз, расширьте объект jQuery. Скрипка: http://jsfiddle.net/W723K/2 /
(function($){
$.fn.changeVal = function(value){
return this.each(function(){
$(this).val(value).trigger('change');
});
}
})(jQuery);
//Usage:
$('select').changeVal('something');