0

ライブメソッドでホバー関数を使用したいのですが、完全に機能していません。mouseenterとmouseoutを使用していますが、マウスを速く動かしているときに、mouseoutイベントが正しく機能しないため、ライブでホバーを使用します。これがサンプルコードです

<a href="#" class="add">add Class</a><br>
<br>
<a href="#" id="me">hover me</a>    


$('.add').click(function(){
    $('#me').addClass('abc')
    })
    $('.abc').live('hover',  function () {
    alert(0)
    }, function (){
    alert(1)
    })
4

3 に答える 3

1

jQuery 1.4.1以降のバージョンはイベントをサポートし"hover"ていlive()ますが、イベントハンドラー関数は1つだけです。

$(".abc").live("hover",
        function()
        {

        }
    );

または、mouseenter用とmouseleave用の2つの関数を提供することもできます。

$(".abc").live({
        mouseenter:
           function()
           {
            alert(0);
           },
        mouseleave:
           function()
           {
            alert(1);
           }
       }
    );
于 2013-01-02T12:54:14.540 に答える
0

非推奨であるため、このメソッドを使用し、委任された構文を使用し.on()ます.live()

$('.add').click(function() {
    $('#me').addClass('abc')
})

$(document).on('mouseenter','.abc', function() {
    console.log('0');
}).on('mouseleave','.abc', function() {
    console.log('1');
})

documentonを使用することは、機能を模倣するため、推奨されないことに注意してください.live.abcDOMでそれに近い永続的な親を使用することをお勧めします。

http://jsfiddle.net/gaby/BCPeZ/3/でのデモ

于 2013-01-02T12:56:55.177 に答える
0

.live()jQueryは代わりに使用をサポートしなくなりまし.on()た。要素を動的に追加するか、クラスまたはIDを追加し、それらにfireイベントが必要な場合は、私と同じようにその要素を委任します。

$('.add').click(function(){
$('#me').addClass('abc');
});
$(document).on('mouseenter', '.abc', function () {
    $(this).css({ "color" : "red" });
}).on('mouseleave', '.abc',  function () {
    $(this).css({ "color": "black" });
});​

ワーキングフィドル

于 2013-01-02T12:55:55.660 に答える