Подтвердить что ты не робот

Jquery не видит новых элементов

Я новичок в JQuery, так что медведь со мной:).

У меня есть простая проблема:

$(document).ready(function() {

     $("#instrument").change(function() {
         $("#tunings").html("<select id=\"TuningSelector>\"[..]</div>");
     });

     $("#TuningSelector").change(function() {
         DoSomethingWithTheValue();
      }); 

 });

Проблема: когда инструмент изменился, script больше не отвечает на изменения TuningSelector. Как JQuery не видит новый элемент TuningSelector...

Нужно ли мне указывать обновление на JQuery или так? Так что он видит обновленную DOM?

4b9b3361

Ответ 1

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

$('body').on( 'change', '#control', function() {
    DoSomething();
});

Ответ 2

С событиями jQuery, если вы хотите, чтобы событие применимо к новым элементам, вы должны использовать . live, однако jQuery 1.3 не размытие поддержки, фокус, мыши, мышь, изменение, отправка событий в виде живых событий. (change, submit и blur/focus находятся на roadmap для jQuery 1.4)

В качестве альтернативы вы можете использовать плагин liveQuery.