Простой метод jquery .hover () для каждого элемента класса - PullRequest
3 голосов
/ 02 апреля 2011

не сделал много jquery и столкнулся с проблемой.Я хотел бы связать событие hover для всех элементов div с классом .social-tile.Я делаю это так:

$(function(){
    var social_default = $('.social-tile').css('margin-right');
    $('.social-tile').each(function(){
        $(this).hover(function(){
            $(this).animate({
                'margin-right': '0px' 
            },500);
        },function(){
            $(this).animate({
                'margin-right': social_default 
            },500);
        });
    });
});

При наведении курсора на один элемент запускаются анимации для всех элементов div, и все они перемещаются одновременно.Я бы хотел анимировать только определенный элемент, над которым я наведите курсор.

Возможно, здесь действительно есть простое исправление, спасибо.

Ответы [ 3 ]

3 голосов
/ 02 апреля 2011

попробуйте это, извините - рабочая демонстрация здесь: http://jsfiddle.net/8vFAD/1/

$('.social-tile').live('mouseover', function(){
    $(this).animate({ 'margin-left': '15px'} ,500).animate({ 'margin-left': '30px'} ,500);
});
2 голосов
/ 02 апреля 2011
$(function() {
    $('.social-tile').hover(
    function() {
        $(this).data('prev-margin-right', $(this).css('margin-right') );
        $(this).animate({
            'margin-right': '0px'
        }, 500);
    }, function() {
        $(this).animate({
            'margin-right': $(this).data('prev-margin-right')
        }, 500);
    });
});
0 голосов
/ 02 апреля 2011

Хорошо, ваша переменная social_default, имеет в себе .socialtile, который будет вызывать все присвоенные ей элементы div, заменив это на (this).

...