Срабатывание js при смене класса дива js(динамически)

Provokator86

Мой дом здесь!
Регистрация
27 Май 2012
Сообщения
365
Реакции
237
Доброй ночи.
Возник вопрос. При наличии двух статичных классах дивов, скрипт срабатывает отлично, но если див меняется посредством js, скрипт отказывается работать
<div class="button-play">- при нажатии на кнопку, данный класс дива меняется посредством js на button-pause
Не срабатывает

Код:
$('.button-play').click(function(){
        $('.anyJS').liJS('start');
        return false;   
    })
    $('.button-pause').click(function(){
        $('.anyJS').liJS('stop');
        return false;   
    })
 
Возможно такое решение подойдет?
HTML:
  $('.button-play').on('click', function(){
    if(this.className == 'button-play'){
      $('.anyJS').liJS('start');
    }
    if(this.className == 'button-pause'){
      $('.anyJS').liJS('stop');
    }
    return false;
  });
Или добавить элементу, например id, который не меняется и на нем инициировать событие - т.е. $('#my_id').on('click', functi.....
Или добавить присвоение событий в функцию, где изменяется класс после строки отвечающей за его смену.
 
Доброй ночи.
Возник вопрос. При наличии двух статичных классах дивов, скрипт срабатывает отлично, но если див меняется посредством js, скрипт отказывается работать
<div class="button-play">- при нажатии на кнопку, данный класс дива меняется посредством js на button-pause
Не срабатывает

Код:
$('.button-play').click(function(){
        $('.anyJS').liJS('start');
        return false;  
    })
    $('.button-pause').click(function(){
        $('.anyJS').liJS('stop');
        return false;  
    })
Читайте про on, live, delegate.
 
Читайте про on, live, delegate.
Код:
$"'.button-play").delegate("click", function(){
        $(".anyJS").liJS("start");
    return false;
    })
    $(".button-pause").delegate("click",function(){
        $(".anyJS").liJS("stop");
        return false; 
    })
Прочитал про обработчики событий on, delegate.
Интересный. Вечером проверю. В чем разница on и delegate, не считая что первый используется на jquery старше версии 1,7?
В общем ничего не выходит.
 
Последнее редактирование:
Работай просто с .button-play, через чистый js .onclick - .classList.add('pause') / .remove('pause')
и при клике на кнопку -play просто проверяй наличие, если нет через classList то add else remove. И работает это в разы шустрее чем jquery, но и на нем можешь писать addClass/removeClass , но я уже не вижу особо смысла его использовать, так по-мелочи. в остальном js не длиннее и 100% в браузере отрабатывает, а не как с jquery если что сожрало либу переменной, то просто не выполняется запросы через $ а порой и через jQuery.
Смотри что пишет консоль, там обычно красным по белому видно все. Но натив работает всегда.

А ну и в коде ошибка: (ну и вместо delegate лучше on)
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Последнее редактирование:
сначала не мешало бы узнать версию jQuery
в старых версиях было .live()
а в новых стало .on()
 
Назад
Сверху