2014-12-19 2 views
0

Моя функция изменения отлично работает для элементов управления, которые сначала встроены в страницу, но когда я динамически добавляю элемент управления select, функция изменения не срабатывает.JQuery Изменение события не запускается

<select name="SUBJ" class="SUBJ" id="SUBJ_-9"> 
    <option value="1">First item</option> 
    <option value="2">Second item</option> 
</select> 

$j('.SUBJ').change(function() { 

    alert("foo"); 

} 

Я задаюсь вопросом, после того, как я динамически добавить элемент управления:

$j("tbody > tr:last").prev().before(strAppend); 

мне нужно сделать, чтобы вызвать любую функцию, чтобы связать наблюдающий событие/обработчик с контролем?

Любые другие идеи? Tks!

ответ

1

Поскольку вы создаете HTML динамически с Jquery, поэтому постарайтесь событие делегации, как показано: -

$j('body').on('change','.SUBJ',function() { 
    alert("foo"); 
}); 

ИЛИ

$j(document).on('change','.SUBJ',function() { 
    alert("foo"); 
}); 

Reference.

+0

Большое спасибо, Картикея и suchit. Вот так! Вы, ребята, рок! – SlimJim

+0

@ SlimJim..приятный, чтобы помочь вам .. :) –

1

Ваш синтаксис поодаль, вам не хватает «)» в конце. Это должно выглядеть как

$j('.SUBJ').change(function() { 

    alert("foo"); 

}); 
2

вам нужно связать event.try так:

$j('body').on('change','.SUBJ',function() { 

    alert("foo"); 

}); 
Смежные вопросы