2013-02-19 4 views
0

Я написал небольшой плагин, чтобы получить элемент и поместить его в модальный блок. После выбора элемента он добавляется к телу, как это:Элемент управления триггером

$('body').append(overlay, modal).show(); 

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

Я пробовал использовать .on() и .live() безрезультатно.

$(document).ready(function() { 
    $('#myLink').click(function() { 
     $('#myEl').myModal(); 
    }); 

    $('#myLink').on('click', function() { 
     alert('clicked me!'); 
    }); 
}); 

Что мне не хватает?

ответ

1

Try:

$(document).ready(function() { 
    $(document).on('click', '#myLink', function() { 
     alert('clicked me!'); 
    }); 
}); 

В идеале вы хотите использовать селектор ближе в DOM элементу, чем document, тот, который присутствует, когда документ будет готов. Согласно документам jQuery для .on()

Обработчики событий привязаны только к выбранным в данный момент элементам; они должны существовать на странице в то время, когда ваш код делает звонок .on(). Чтобы убедиться, что элементы присутствуют и могут быть выбраны, выполните событие , связанное внутри документа, готового обработчика для элементов, которые находятся в HTML-разметке на странице. Если на страницу вводится новый HTML-код, выбирает элементы и присоединяет обработчики событий после того, как новый HTML-код помещается на страницу.

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