0

画像共有 js スクリプトを作成します。ページに画像があると、div ラッパーが追加されます。例えば、

<img href="xxx.jpg" />

私のスクリプトは

<div class="wrapper">
    <img href="xxx.jpg" />
</div>

また、.wrapper クラスにはマウントオーバー イベントもあります。以下のコード構造まで、すべてがうまくいっています。私たちのブログ サイトには、img タグの div ラッパーがたくさんあります。

<div class="a">
    <img href="xxx.jpg" />
</div>

私のjsスクリプトラッパーは「ラッパー」クラスですが、これらのHTML構造ではマウスオーバーイベントが機能しなくなりました。ここで何が起こったのか誰か教えてくれませんか? 前もって感謝します!

4

3 に答える 3

1

JavaScriptコードを見ると役立ちます。これから、私の推測では、あなたはバインドされておらず.a、まだバインドされていると思います.wrapper

于 2012-05-03T02:55:15.190 に答える
0

これはライブイベントバインディングの場合であり、1.7の時点でONのために非推奨になっているjQueryのライブをチェックする必要があるかもしれません-on ()はlive()が行っていたものを実行します

あなたが言った-画像があると、それはラップします-正確にあなたはこれをどのようにやっていますか?

解決策はそこにあるかもしれません、例えば。画像を確認して折り返す場所で、もう一度マウスオーバーを付ける必要があります

//  firstly, why is your image having href=xxx.jpg
//  should be src=xxx.jpg I suppose

$('img[href$="jpg"]').wrap('<div class="wrapper">');

//  Whatever might be your logic above for wrapping
//  you need to again call bind method here OR
//  you need to call one final time at the end of all your code

$('img[href$="jpg"]')
    .parent('.wrapper')
    .bind('mouseover', function() {
        $(this); // $(this) - is your current wrapper div now
        // your code
    });

画像をラップしているとき、または画像がajax経由で送信されているときに画像がいつ来るかわからない場合は、jQueryのlivequeryプラグインを確認する必要があります。

$('div.wrapper').livequery(function() {
    $(this).bind('mouseover', function() {
        // your code
    });
});
于 2012-05-03T19:49:01.613 に答える
-1
$('img').wrap('<div class="wrapper">');

div でラップしmouseover、画像の代わりにその div に適用する必要があります。

于 2012-05-03T03:08:51.433 に答える