@isawillbenice

Как отловить клик в js при использовании template?

Есть шаблон, который создается динамически

<script id="balloon-template" type="text/html">
    <div class="balloon-container">
        <div class="balloon-title">
            <%= title %>
        </div>
        <div class="balloon-content">
            <%= desc %>
        </div>
        <a href="#" class="icon-close popup-close js__close_balloon"></a>
    </div>
</script>


Когда пытаюсь отловить клик по классу js__close_balloon, ничего не происходит, т.к. этот элемент создается динамически
Пробовал через on и live, не получается отловить.
$('.js__close_balloon').on('click', function() {
    self.options.balloon.close();
    return false;
 });


Каким образом можно отловить событие?
  • Вопрос задан
  • 2492 просмотра
Пригласить эксперта
Ответы на вопрос 3
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Всё у Вас получится, только если Вы инициализируете обработчик $.on() в то время, когда элемент с таким классом уже присутствует в Вашем DOM (не в виде шаблона underscore где-то там, а уже реально рабочий объект).

То-есть, вначале Вы должны создать элемент(ы) на странице по шаблону, а затем уже инициализировать обработчик $.on()
Ответ написан
@eyeless_watcher
Можно вешать обработчик на элемент, который уже есть на странице и до которого событие всплывет.
$(window).on("click", ".js__close_balloon", function(){});
Ответ написан
Комментировать
diavol
@diavol
Всегда можно старым-добрым дедовским способом:
<a href="#" class="icon-close popup-close js__close_balloon" onclick="..."></a>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы