1

現在、jQuery 1.3.2の使用に追われており、イベントの委任全般について理解し始めたばかりです。しかし、このコードで機能するイベント委任を取得できないようです。クラス「チャット」のulがあり、そのliの1つにカーソルを合わせると、新しいスパンが作成され、マウスが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();                                             
        }); 
    }
);

誰かが同じ結果を達成する方法を教えてもらえますが、イベントの委任がありますか?ありがとう。

4

1 に答える 1

1

更新: 追加されたアイテムにイベント委任が必要なようには見えませんが、非常に大きな結果セットを操作するため、さらに必要になります。

Google ('event delegation jquery 1.3.2') で簡単に検索すると、この.


イベントで「イベント委任」を取得できますjQuery.live()

次のように、それを 2 つのバインディングに分割する必要があります。

$('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();                                             
        }); 
    }
);
于 2010-12-17T14:33:04.743 に答える