@arudmin

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

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

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

Есть идеи?
  • Вопрос задан
  • 5146 просмотров
Решения вопроса 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) не вешая на них никакие обработчики.
Внимательней надо быть)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект