jquery события на json анализируются через попкорн
Кто-нибудь знает, почему события jquery не работают с данными json, проанализированными с помощью JSON Parser Popcorn.js?
Я хочу вызвать функцию при нажатии на ссылку. И рассматриваемая ссылка находится в файле json. Файл, кажется, проанализирован, как и ожидалось, и сноски попкорна появляются, как и ожидалось. Я могу перейти по проанализированной ссылке, но событие не запущено.
Вот фрагмент кода, над которым я работаю:
<script>
$(function() {
var popcorn = Popcorn("#video");
popcorn.parseJSON ("data/data.json");
$("a[href='gohere.html']").click(function() {
alert("clicked!"); //should display the message, but doesn't
});
});
</script>
И файл JSON выглядит так:
{
"data": [
{
"footnote": {
"start":"1",
"end":"3",
"target":"footnote-container",
"text":"<a href='gohere.html'>Go Here</a>"
}
},
{
"footnote": {
"start":4,
"end":7,
"target":"footnote-container",
"text":"Another piece of text."
}
}
]
}
Буду очень признателен за любую помощь!
2 ответа
Использовать делегирование с .on()
$('body')on('click','a[href="gohere.html"]',function() {
alert("clicked!"); //should display the message, but doesn't
});
замена 'body'
(Не обязательно, но более эффективно) с ближайшим предком, который статичен и существует во время готовности. Это свяжет обработчик события с этим элементом, который, в свою очередь, прослушивает событие, когда оно всплывает от данного селектора.
Попробуйте использовать jQuery .on () внутри функции обратного вызова из parseJSON
или какой-то другой ajax
производное.
$("a[href='gohere.html']").on('click', function() {
alert("clicked!");
});