2015-10-27 7 views
0

Я пытаюсь создать динамическое содержимое. Когда я нажимаю одну кнопку, содержимое коробки изменяется с помощью .html(). Когда я нажимаю другой, содержимое меняется снова.jQuery не распознает селектор, созданный методом .html()

Это прекрасно, но все, что создано в этом поле, похоже, не может быть выбрано.

Так, например:

$(document).ready(function(){ 

    boxContent1 = "<div class='studySelector'></div>"; 

    $("#caseStudy").on('click',function(){ 
     $("#botBox").hide().html(caseStudy).fadeIn(1000); 
    }); 

}); 

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

$(".studySelector").on('click',function(){ 
    alert("testing!"); 
}); 

ничего не происходит. Почему это происходит?

+0

Используйте делегацию событий '$ ('# botBox'). On ('click', '.studySelector', function() {' – Tushar

+0

Вот статья с подробным объяснением того, как связать событие с динамически добавленным элементом http://codepedia.info/2015/02/click-event-for-dynamic-button-jquery/ –

ответ

0

Вы должны использовать event-delegation, как динамически создавать узлы в DOM после рендеринга:

$('#botBox').on('click', '.studySelector',function(){ 
    alert("testing!"); 
}); 

должны работать.

Смежные вопросы