0

コールバック関数でホバー効果を作成しようとしています。効果はコールバック関数でのみトリガーでき、initホバーではトリガーできないようです。ここの誰かが私を助けてくれるかどうか疑問に思いました。どうもありがとう。

$("img").live("hover", function () {
    // hover in
    $(this).css("z-index", 1);
    $(this).animate({
        height: "35%",
        width: "35%",
        left: "-=50",
        top: "-=50"
    }, "fast");
}, function () { //only the following codes will be triggered.
    // hover out
    $(this).css("z-index", 0);
    $(this).animate({
        height: "15%",
        width: "15%",
        left: "+=50",
        top: "+=50"
    }, "fast");
});

imgはajax呼び出しを介して生成されますが、関連性があるかどうかはわかりません

<div id='image_layout'>
    <img src='a.jpg' />
    <img src='b.jpg' />
    <img src='c.jpg' />
</div>  
4

2 に答える 2

3

live()は非推奨であり、実際にはそのようには機能しませんが、jQuery 1.7以降を使用している場合はon()、イベントを最も近い非動的な親に委任するために使用する必要がdocumentあります。例では、次のように置き換えますdocument。おそらく#image_layoutその要素が動的に挿入されていない場合、Ajaxで挿入されていない画像に最も近い親:

$(document).on({
    mouseenter: function() {
        $(this).css("z-index", 1).animate({
                height: "35%",
                width: "35%",
                left: "-=50",
                top: "-=50"
            }, "fast");
    },
    mouseleave: function() {
        $(this).css("z-index", 0).animate({
                height: "15%",
                width: "15%",
                left: "+=50",
                top: "+=50"
            }, "fast");
    }
}, "img");

別の注意点として+=、アニメーションでとパーセンテージを使用すると、多くの場合、悲しみ以外の何物にもなりません。

于 2012-08-02T17:01:17.727 に答える
1

jQuery 1.7以降、.live()メソッドは非推奨になりました。.on()を使用して、イベントハンドラーをアタッチします。古いバージョンのjQueryのユーザーは、.live()ではなく.delegate()を使用する必要があります。

試す!

また、パラメータが間違っています。2番目のパラメータはdata nogである必要があります。詳細については、http://api.jquery.com/live/を参照してください。

于 2012-08-02T17:01:47.700 に答える