Я знаю, что должен использовать.on для добавления события click my моих динамически добавленных компонентов. На самом деле, я использую его в некоторых компонентах моей страницы, и это действительно работает.
здесь: http://cacharro.ole32.com/shopping/ вы можете увидеть мою страницу.
Когда вы нажимаете один из разделов (извините за испанский), он взаимодействует с кликом, но при нажатии над одним из внутренних элементов взаимодействия не происходит.
Это простой кусок кода, который должен работать.
$(document).on('click', ".item", function(){
itemOnMarketClicked($(this));
});
Не знаю, почему это не так.
EDIT1:
Я заметил, что при нажатии $('#marketList').find('li:has(ul)').on('click',....
получает вызов. Может ли это быть так, что вызов не распространяется вовнутрь список, как только он поймал здесь???
Изменить 2: запрошен код для intemMarketCliked. вот:
function itemOnMarketClicked(item){
$("#currentList").append("<div class='itemOnList' id='List_"+item[0].id+"'>"+item[0].innerText+"</div>");
item.slideUp(100, function(){item.remove()});
}
Идея состоит в том, чтобы добавить элемент с кликом в другой список и удалить его из текущего списка.
Посмотрите, как я вижу ваш код, вы должны поместить событие click
вне функции init()
чтобы он всегда был доступен для выполнения работы по назначению.
$(function(){
$(document).on('click', ".item", function(){
itemOnMarketClicked($(this));
});
});
попробуйте поместить все ваши события кликов за пределы функции init и, поскольку вы делегировали событие в document
поэтому вам не нужно класть его в готовый блок doc, он будет работать, но все же вы должны поместить его вне функции init()
,
itemOnMarketClicked()