2012-07-03 12 views
0

Итак, у меня есть элемент, который переключается между двумя цветами фона при нажатии. Но когда элемент не выбран, я хочу, чтобы цвет фона изменялся (и возвращался) при наведении. Я попытался использовать .on ('hover') и .off ('hover') в переключателе, но работает только .off().jQuery Функция Toggle and Hover function

$('.element').hover(
    function() { 
    $(this).css('background', '#e7f1f5'); 
    }, 
    function() { 
    $(this).css('background', '#fff'); 
    } 
); 

$('.element').toggle(
    function(select) { 
    select.preventDefault(); 
    $(this).off('hover'); 
    $(this).css('background', '#f6f6f6'); 
    other.code(); 
    }, 
    function(unselect) { 
    unselect.preventDefault(); 
    $(this).on('hover'); 
    $(this).css('background', '#fff'); 
    other.code(); 
    } 
); 

I toggle 'on', событие «hover» больше не срабатывает (по желанию). Когда я переключаю 'off', событие 'hover' все равно не срабатывает.

Я довольно новичок в jQuery и StackOverflow, так что извините, если этот вопрос тривиален.

Спасибо!

ответ

1

использование CSS:

.element{ 
    background-color:#FFF; 
} 
.element.hover{ 
    background-color:#e7f1f5; 
} 

вместо $(this).off('hover'); сделать:

$(this).addClass('hover'); 

вместо $(this).on('hover'); сделать:

$(this).removeClass('hover'); 
+0

Извините, но это не работает. После того, как элемент переключится на «включено», событие hover не должно работать. Это, похоже, не затрагивает эту проблему. –

+0

@MichaelChoi try '$ (this) .hover();' вместо 'on' – mgraph

+0

Я даже не думал об изменении наведения в css. Благодаря! –