Невозможно выбрать клонированные элементы в jquery - PullRequest
3 голосов
/ 09 июля 2011

После клонирования элемента select и увеличения атрибута «name» я не могу выбрать клонированные элементы.

Например:

HTML

<select name="1"></select>

<select name="1-1"></select> <!-- cloned element -->
<select name="1-2"></select> <!-- cloned element -->

JS

$('[name^="1"]').change(function() {
    alert(1);
});

Когда я меняю исходный элемент, он работает нормально, я получаю предупреждение, но когда я изменяю один из клонированных элементов, ничего не происходит.Ошибок нет.

Примечание: вместо идентификатора я использую атрибут «name», потому что мне нужно получить значения этих клонированных элементов после отправки формы

Должно ли это работать ??или клонированные элементы не могут быть выделены?

1 Ответ

3 голосов
/ 09 июля 2011

Вот ссылка на документацию для live () DOC , а вот ссылка для делегат () DOC

$('[name^=1]').live('change', function(){
  console.log('hi!');
});

Хотя он работает не так, как обычный обработчик событий (на самом деле он прослушивает события в документе, поэтому он «обрабатывает» событие при распространении. Делегат немного более эффективен, потому что вы предоставляете ему контекст для прослушивания:

$('form').delegate('select[name^=1]', 'change', function(){
  console.log('hi there!');
});
...