@way_t

Как организовать работы функции, которая использует добавленный JQuery класс?

Всем привет.
$('.podcast__play').on('click', function() {
       $(this).addClass('playing');
    })

    $('.playing').on('click', function() {
            console.log('test');
    })


Скажите пожалуйста, почему не отрабатывается функция при нажатии на playing? Так понимаю, нужно отслеживать дополнительно это событие. Есть идеи, как это можно реализовать?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
@sidni
Php Developer
$('body').on('click', '.playing', function() {
            console.log('test');
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@wallydnb
Событие не отрабатывается, потому-что оно вешается на элементы, имеющие класс playing на момент исполнения функции. У вас класс применяется позже, на событие click.

Возможно, вы хотели сделать нечто подобное:
function handleStoped() {
        console.log('stoped')
        $(this).removeClass('playing')
        $(this).text('play')
        $(this).off('click', handleStoped)
        $(this).on('click', handlePlaying)
}
function handlePlaying() {
        console.log('playing')
        $(this).addClass('playing')
        $(this).text('stop')
        $(this).off('click', handlePlaying)
        $(this).on('click', handleStoped)
}
$('.podcast__play').on('click', handlePlaying)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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