jQuery не выполнять код, если есть класс

Тема в разделе "JavaScript", создана пользователем Горбушка, 15 июл 2015.

Модераторы: ZiX
  1. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    Всем привет! Есть вот такой код:
    Код:
        $(".home").hover(function() {
          $(this).animate({ backgroundColor: '#fffff'},300);
        },function() {
          $(this).animate({ backgroundColor: '#353535;'},300);
        });
    jquery.color.js, конечно же, подключён.

    Необходимо чтобы данный код выполнялся только если указан class="home", но не выполнялся, если прописан class="hove active"... В общем, нужно чтобы код не выполнялся для всех элементов, у которых прописан class="active", сам код можно перенести с class="home" на id="home" - не имеет значения.
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    И по традиции, сам спросил - сам ответил...
    Код:
        $(".home:not(.active)").hover(function() {
          $(this).animate({ backgroundColor: '#fffff'},300);
        },function() {
          $(this).animate({ backgroundColor: '#353535;'},300);
        });
     
    latteo и funnywheel нравится это.
  3. CoderW

    CoderW Постоялец

    Регистр.:
    17 янв 2013
    Сообщения:
    121
    Симпатии:
    54
    Я бы вообще это сделал при помощи CSS
    Код:
    .home:not(.active):hover{
    background-color:#ffffff;
    -webkit-transition: all .3s;
               transition: all .3s;
    }
    .home.active:hover{
    background-color:#353535;
    -webkit-transition: all .3s;
               transition: all .3s;
    }
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    Эх... CSS 3... Я хостингов с PHP 7.0 альфой нашёл больше, чем браузеров полностью поддерживающих CSS 3.0. Так что спасибо, но я на JS..
     
  5. CoderW

    CoderW Постоялец

    Регистр.:
    17 янв 2013
    Сообщения:
    121
    Симпатии:
    54
    Горбушка нравится это.
  6. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    364
    Симпатии:
    182
    Можно ещё указать точное соответствие.
    Код:
        $("[class=home]").hover(function() {
          $(this).animate({ backgroundColor: '#fffff'},300);
        },function() {
          $(this).animate({ backgroundColor: '#353535;'},300);
        });
    На class="home active" действовать не будет. Какой способ быстрее - х.з)
     
    Горбушка нравится это.
  7. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    мой способ лучше тем, что можно исключить конкретный класс, а вот остальные могут быть... Т.к. class="home active" не сработает, а class="home" и class="home nav" сработают. Хотя вариант тоже не плохой!
     
    Absolute нравится это.