@Tiamorphis

Почему Select не генерирует события?

Есть форма и в ней два связанных селекта - гостиница и номер www.1arbat-hotel.ru/bron.html
Выбираем гостиницу - получаем список типов номеров. Селект с номерами подменяется на соответствующий выбранной гостинице. Так вот, есть задача повесить событие на выбор определённого типа номера, казалось бы, чего проще - обращаешься по id к нужной option и вперёд?

Но затык в том, что второй селект не желает генерировать события. Либо их что-то перехватывает... Пробовал разные - и click и change - ничего не происходит. По началу грешил на cursel (плагин для украшения инпутов) но отключение его для этого селекта ничего не дало. Селект с гостиницам всё отрабатывает, а этот, по конструкции точно такой же, но с другим id - нет. Помогите нубу, кто чем может! Куда смотреть, чего искать?
  • Вопрос задан
  • 2571 просмотр
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Ну Вы обработчик события весите при загрузке страницы, а потом селект подменяете. Вот когда подменяете, тогда и надо весить обработчик.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jsfiddle.net/iiil/b55N5
jsfiddle.net/iiil/b55N5/1
Вот, сравните два варианта. В первом меняем первый селект, добавляется третий. Но алерт выскакивает только на втором.
Во втором варианте алерт работает и в том, что был - втором. И в новом - в третьем.
Ответ написан
Pozadi
@Pozadi
Попрубуйте подписываться на собыия так:
$(document).on('change', '#number-select', function(){
   alert($(this).val());
});


Тогда не будет разницы сколько раз вы удаляил или заменяли элемент. Это работает потому что события "всплывают" по DOM-дереву, и вы слушаете на самом высоком уровне. Но при этом фильтруете все события "change", оставляя только те которые изначально произошли на #number-select.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы