@arudmin

Почему не работает $.click() в данном скрипте?

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

jsbin.com/USUdatU/11/edit?html,js,console,output

Есть идеи?
  • Вопрос задан
  • 5148 просмотров
Решения вопроса 2
dizballanze
@dizballanze
Software developer at Yandex
Вам нужно вешать событие при помощи .on
jsbin.com/IKumIho/1/edit?html,css,js,output
Ответ написан
mlnkv
@mlnkv
JavaScript Developer
ну так верно, вы вешаете событие на тот момент, когда у вас есть только шаблон, и клик срабатывает только на него, в данном случае нужно делегировать событие
$(".channels").on("click", ".linkurl", function(){ /*    */ })


либо добавлять слушатель события только после добавления элемента (когда он уже существует в DOM)

$("div.channels ul")
  .append($('<li>')
  .append($(item)))
  .show();
$(item).click(function(){ /*    */ })
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Работает, у вас же невидимый этот элемент (в div с display:none)
Ответ написан
Комментировать
@arudmin Автор вопроса
Этот див - шаблон для постоения каркаса. после разбора JSON, клонируется только содержание дива. Да и обработка клика происходит у других элементов ".linkurl"
Ответ написан
Комментировать
@cjohn
Ты поставил обработчик на скрытый элемент (тот у которого "display: none;" стоит). Потом добавляешь на страницу остальные элементы (цикл for) не вешая на них никакие обработчики.
Внимательней надо быть)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы