Не удается закрыть всплывающее окно после клонирования div. Bind ()? Jquery - PullRequest
0 голосов
/ 03 апреля 2012

Как я могу активировать событие click после клонирования div с именем .popup, а затем щелчка по диапазону с именем #close, предназначенному для закрытия .popup?

Нажатие на него в настоящее время ничего не делает. Я понимаю, что div был создан после инициализации страницы, мне просто нужно знать, как привязать это к странице, чтобы она распознавалась при нажатии на нее.

JavaScript:

$('span#close').click(function () {
            $('.popup').fadeOut(1000);
        });

HTML:

<div class="popup">
    <span id="close">Close</span>
    <!-- content -->
</div>

Ответы [ 4 ]

1 голос
/ 03 апреля 2012

Попробуйте:


$("span#close").on("click", function(){
   $('.popup').fadeOut(1000);
});
1 голос
/ 03 апреля 2012

Вы, вероятно, ищете событие on(), предоставляемое jQuery - вы могли бы использовать live(), но это устарело и крайне не рекомендуется .

Итак, что-то вроде:

$('span#close').on('click', function(e) { });
0 голосов
/ 03 апреля 2012

Спасибо всем за ваши предложения, обработчик .on(), я не мог заставить это работать, не знаю почему, поэтому я решил использовать предложение @faino.

Я создал содержащий div в html и установил его свойство на display:none, этот div также содержал span#close, который используется для закрытия всплывающего окна.

Когда элемент был клонирован, он был добавлен к элементу, содержащему div, и когда я щелкнул по span#close, он удалил клонированный элемент и установил обратно свойство, содержащее divs, в display:none

.

Таким образом, span#close не клонируется и не нуждается в повторном отображении события.

Опять же, спасибо за все ваши ответы!

0 голосов
/ 03 апреля 2012

Вам нужно копировать события при клонировании. Смотрите эту хорошую статью. Также помните, что атрибут ID должен быть уникальным в документе. Поэтому после клонирования элемента убедитесь, что у вас нет повторяющихся элементов с одинаковыми идентификаторами.

...