2012-02-09 29 views
0

"imgGroup"のクラスを持つすべての画像のコレクションがあります。 各画像には、2つのボタンを含むdivがあります。これらのdivには "btnActions"というクラスが割り当てられます。私のイメージはデータベースから表示されます。複数の画像にjQuery関数を使用する方法

未知の量の画像がある場合、下のjQueryコードを個々の画像でどのように利用できますか?現在、画像の上にマウスを移動すると、すべての画像の「btnActions」divが表示されます(期待通りですが、必要ではありません)。

P.S - このjQuery.each関数は解決策のようですが、私の脳はそれをとてもうまく覆いません。

おかげ

$('.imgGrp').hover(function() { 
    $('.btnActions').css("display", "block"); 
}); 
+1

どのように各画像をdivにリンクしますか? – SLaks

+0

あなたのHTMLを投稿してください、その結果はそれに依存します。 –

+0

これらの回答のいずれかがあなたを助けた場合、なぜそれを受け入れませんか? –

答えて

0
$('.imgGrp').hover(function() { 
    $('.btnActions', $(this)).css("display", "block"); 
}); 

はonnlyあなたがホバリングしている ".btnActions" に適用されます。

+0

Johannesありがとうございますが、これは機能していないようです。私はあなたがこれでどの方向に向かっているのかを見て、このアプローチを深く掘り下げます。 – mickormick

+0

重要なことは、 'コンテキスト'を使うことです。正確なHTMLコードを私に見せたら、js関数を手伝ってもらえます。 –

0

これにはJavaScriptが必要ありません。

.imgGrp:hover .btnActions { 
    display: block; 
} 
+0

ありがとうございます。しかし、私はちょうど私が上に乗っている画像のためにbtnActions DIVを表示/表示しようとしています...すべてではありません – mickormick

+0

あなたがドンしていないので、グループではなく特定の画像に付けられたクラスにホバーを適用してくださいあなたがグループに乗るときに何かが起こることを望みません。 – NightHawk

0

このjQueryスクリプトでは、クラス「imgGroup」の項目を上回っているときに、クラス「btnActions」の項目が表示されます。マウスを動かすと、 "btnActions"クラスの項目は非表示になります。 window.loadパーツは、効果を適用する前にすべての画像がロードされるまで待つでしょう。

$(window).load(function() { 

    $(".imgGroup").hover(
     function() { 
     $(this).find("button").show(); 
     }, 
     function() { 
     $(this).find("button").show(); 
     } 
    ); 

}); 

私はそれがどうなるか教えてください!

PS:.show()と.hide()を.show( 'slow')と.hide( 'fast')に置き換えることで、フェードインにすることもできます。

UPDATE:

$(window).load(function() { 

    $(".imgGroup").hover(
     function() { 
     $(this).addClass("hover"); 
     $(".hover > .btnActions").show(); 
     }, 
     function() { 
     $(this).removeClass("hover"); 
     $(".hover > .btnActions").hide(); 
     } 
    ); 

}); 

は、彼らが作業している場合、私に教えてください:

ここで働くかもしれない別の方法があります。

+0

カールに感謝しますが、これは同じことを行います。すべての画像のbtnActions DIVを一度に表示します。私はちょうど私がホバリングしているイメージのためにbtnActions DIVを表示/表示しようとしています。 – mickormick

+0

私は今よく分かります。私はjQueryを変更して、あなたが表示するアイテム内のボタンタグを検索するように変更しました。 「入力」を代わりに使用している場合は、「ボタン」を別のタグに変更することもできます。それを試してください。 – Karl

+0

私の答えを振り返ってみると、うまくいくかもしれない別の方法も追加されました。 – Karl

0

このMickormickを試してみてください。

$(window).load(function() { 

    $(".imgGroup").hover(
     function() { 
     $(this).addClass("hover"); 
     $(".hover > .btnActions").show(); 
     }, 
     function() { 
     $(this).removeClass("hover"); 
     $(".hover > .btnActions").hide(); 
     } 
    ); 

}); 
+0

2つの答えをマージする必要があります。 –

関連する問題