Jquery Grabbing id выбора, где есть более одного выбора с одинаковым именем класса - PullRequest
0 голосов
/ 27 марта 2011

У меня есть форма, элементы которой клонируются с помощью jquery. Так что может быть несколько

Выбор из выбора показывает / скрывает <div id="hide1" class="hide">...</div> Этот код JQuery ...

$(document).ready(function(){
  $('.hide').hide();
  $('select.ticket').change(function(){

    var hideNo=this.id.substr(6);
   console.log('This='+this);    //debug for firebug
   console.log('Id='+hideNo);//debug for firebug
    console.log('Value='+this.value);//debug for firebug
    $('#hide'+hideNo).toggle(this.value == 'child'||this.value == 'youth');
  });
  $(".ticket").change();
});

Работает для первого идентификатора, но не для последующих.

Чего я делаю не так, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 27 марта 2011

Либо используйте live(), либо delegate(), чтобы обработчик событий работал с любыми элементами, которые соответствуют селектору в настоящее время или добавлены в будущем.

Другойопция, если вы используете встроенный метод .clone().Вы можете использовать .clone(true) для клонирования любых данных и событий, связанных с этим элементом.

0 голосов
/ 27 марта 2011

Попробуйте изменить третью строку в вашем коде выше на:

$('select.ticket').live("change", function(){
...