Изменить цвет :hover элемента через jquery

Тема в разделе "JavaScript", создана пользователем verfaa, 27 янв 2014.

Модераторы: ZiX
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    На странице цвет элементов меняется динамически (пользователь выбирает цвет).

    В связи с этим jquery выборка не работает
    Код:
    $('#nav ul a:hover').css("background", menu + 'url(/images/menu-gradient.png) repeat-x 0 -100px');
    (в переменной menu хранится цвет).

    Как правильно переписать этот участок кода? В чем ошибка, ведь аналогичный код без :hover работает нормально.
     
  2. jDony

    jDony Создатель

    Регистр.:
    25 янв 2014
    Сообщения:
    41
    Симпатии:
    40
    Как-то так:

    Код:
    $('#nav ul a').hover(
        function() {
            $(this).css("background", menu);
        }, function () {
            $(this).css("background", "#fff");
    });
    Или так:

    Код:
    $('#nav ul a').on({
        mouseover: function() {
            $(this).css("background", menu);
        },
        mouseleave: function () {
            $(this).css("background", "#fff");
    }});
    Проверил на jsfiddle - работает.
     
    verfaa и latteo нравится это.
  3. cooli0

    cooli0 Создатель

    Заблокирован
    Регистр.:
    27 янв 2014
    Сообщения:
    12
    Симпатии:
    2
    Код:
    var bg = $('#nav ul a').css('background');
    $('#nav ul a').hover(function() {
        $(this).css('background', menu + ' url(/images/menu-gradient.png) repeat-x 0 -100px');
    }, function() {
        $(this).css('background', bg);
    });