делегирование событий с помощью jQuery 1.3.2 - PullRequest
1 голос
/ 17 декабря 2010

В данный момент я застрял на jQuery 1.3.2 и только начинаю понимать делегирование событий в целом.Но я не могу заставить делегирование событий работать над этим кодом.У меня есть ul с классом 'chat', который при наведении курсора на один из его li должен создать новый диапазон, который затем выдвигается, а затем возвращается, когда мышь покидает li.

Этот код работает, но я хочу использовать делегирование событий:

$('ul.chat li').hover(
    function() {
        $(this).append($('<span class="join">Join Conversation</span>'));
        setTimeout(function() {
            $('.join').animate({'width': '150px'}, 400);
        },500);
    },
    function() {
        $('.join').animate({'width': '0px'}, 200, function(){
            $(this).remove();                                             
        }); 
    }
);

Может кто-нибудь показать мне, как добиться того же результата, но с делегированием событий?Спасибо.

1 Ответ

1 голос
/ 17 декабря 2010

ОБНОВЛЕНИЕ: не похоже, что вы хотите делегировать события для добавленных элементов, но больше, потому что вы будете работать с очень большим набором результатов.

Быстрый поиск в Google ('делегирование событий jquery 1.3.2 ') придумали this .


Вы можете получить "делегирование события" с событием jQuery.live().

Вам придется разделить это на две привязки, например так:

$('ul.chat li').live('mouseover',
    function() {
        $(this).append($('<span class="join">Join Conversation</span>'));
        setTimeout(function() {
            $('.join').animate({'width': '150px'}, 400);
        },500);
    }
).live('mouseout',
    function() {
        $('.join').animate({'width': '0px'}, 200, function(){
            $(this).remove();                                             
        }); 
    }
);
...