2015-02-21 3 views
0

При использовании foreach из jTemplate jQuery не подключается к событию .click() любых элементов DOM в применяемом шаблоне.Невозможно перехватить событие Click с выхода jTemplate

решение, такие как .live('click', function()) не работает (частично из-за .live осуждались, но альтернатива введено, чтобы заменить его .on('click', function()) делает то же самое ...), и я не могу понять, как получить Нажмите событие из результатов jTemplate.

вещь я пробовал:

  • .live('click', function())
  • .click(function())
  • .on('click', function())
  • Все 3 события в $(window).load(function()), $(document).ready(function()) и просто свободно в теге Script
  • Все 3 события до того и после вызова функции .processTemplate()

На данный момент у меня нет больше идей о том, как решить эту проблему.

Моя версия jQuery для справки 2.1.3, а jTemplate - 0.8.4.

+1

Делегирование события , используйте, например: '$ (document) .on ('click', 'selector', handler);'. См. Документацию: http://api.jquery.com/on/ BTW, читайте: http://learn.jquery.com/events/event-delegation/ –

+0

Спасибо, А. Вольф, Это решило мою проблему. Если вы не возражаете опубликовать это как ответ, поэтому я могу отметить его как ответ, это было бы замечательно! – Nikey646

ответ

2

Что касается jQuery 1.7 и выше, чтобы делегировать событие, вы должны использовать метод on() и передать параметр селектора.

Вот пример, даже это Usally лучше привязать его к ближайшему статического контейнера, а не document:

$(document).on('click', 'selector', handler); 

Вы можете как хорошо читать см по следующей ссылке: http://learn.jquery.com/events/event-delegation/

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