2013-02-20 3 views
1

Я реализовал функцию парения так, что при наведении мыши на звездочку это и все предыдущие братья и сестры имеют метод addclass к ним применяютсяJquery Hover функция модификации

$(document).ready(function(){ 
$('.ratings li').hover(function(){ 
    $(this).prevAll().andSelf().addClass('goldstar'); 
}); 
}); 

Что происходит в данный момент, если я наведите курсор мыши на скажем, четвертую звезду (5), тогда истина и все братья и сестры имеют класс.

Что я хочу достичь, так это то, что когда я покидаю состояние зависания, li возвращается в исходное состояние или даже лучше наведение следует за потоком мыши, так как я нависаю над классом li, надеюсь, что имеет смысл)

Я собрал Jsfiddle, но по какой-то причине изображение не отображается, хотя путь является общедоступным?

+0

спасибо всем, не думал, просто добавить еще одну функцию .... теперь будет хотя – Richlewis

ответ

1

Javascript

$(document).ready(function(){ 
    $('.ratings li').hover(function(){ 
     $(this).prevAll().andSelf().addClass('goldstar'); 
    // add a function for when the hover ends... 
    },function(){ 
     $(this).siblings().andSelf().removeClass('goldstar'); 
    }); 
}); 

CSS

background-image: url("http://i.stack.imgur.com/S5T0M.png"); 

Working demo

+0

спасибо , thats awesome – Richlewis

+0

poo, его сломанный мой метод щелчка сейчас :(не ваша вина, хотя, что-то еще, чтобы посмотреть на меня сейчас – Richlewis

1

Вы можете сделать это:

$('.ratings li').hover(function(){ 
    $(this).prevAll().addBack().addClass('goldstar'); 
}, function(){ 
    $('.ratings li').removeClass('goldstar'); 
}); 

Обратите внимание, что я заменил andSelf который устаревшее по addBack. Вы можете оставить andSelf, если используете старую версию jQuery.

Вы также можете быть заинтересованы тем, как я обойти эту проблему образа ...

Demonstration

+2

интересный способ решения проблема изображения :) – Richlewis

+1

Unicode полна активов для многих общих проблем интерфейса :) –

+0

Мне нравится ваше использование unicode ... есть ли опасность, которая может не отображаться на iPad и т. д. ... есть ли какие-либо надежные резервные копии? –

1
$(document).ready(function(){ 
$('.ratings li').hover(function(){ 
function() { 
    // Run on Mouse over 
    $(this).prevAll().andSelf().addClass('goldstar'); 
    }, 
    function() { 
    // Run on Mouse out 
    $(this).removeClass('goldstar'); 
    } 
}); 
}); 
+0

, когда вы покинете этот список, это оставит одну звезду меньше, чем вы остановили –

1

Очистить класс от звезд после того, как мышь JSFiddle example:

$(document).ready(function(){ 
    $('.ratings li').hover(function(){ 
     $(this).nextAll().removeClass('goldstar'); 
     $(this).prevAll().andSelf().addClass('goldstar'); 
    }); 
    $('.ratings ul').mouseout(function(){ 
     $('li', this).removeClass('goldstar'); 
    }); 
    }); 

ОБНОВЛЕНО : удалить все звезды при выводе

+0

это оставит звезды, показывая, если вы переместите указатель мыши из списка (а не на другой 'li') –

+0

отличный момент, обновленный, чтобы исправить – CraigTeegarden

Смежные вопросы