1

オーバーレイ付きの画像のリストがあります。画像にマウスオーバーすると、JQuery を使用してテキストとオーバーレイが消えるはずです。画像にカーソルを合わせると、その特定の画像のオーバーレイが消えます。これは正しいです。問題はテキストです。画像にカーソルを合わせると、その画像と他のすべての画像のテキストが消えます。その特定の画像のテキストとオーバーレイのみを非表示にする必要があります。オーバーレイが正しく機能するようになったので、これは小さな問題のようです。事前に友人に感謝します。

JQuery は次のとおりです。

//Hides the screen and text on mouseover
$('.screen').mouseover(function() {
    $('.screen_text').hide();
    $(this).slideUp(400);

});
//Shows the screen and text on mouseout
$('.portfolio img').mouseout(function() {
    $('.screen_text').show();
    $('.screen').slideDown(400);

});
4

3 に答える 3

3

あなたのhtmlモックアップを見ずに、私の仮定はあなたのjqueryセレクターがすべてのテキスト要素を返すということです(あなたは $('.screen_text') をやっているからです)あなたがしたいことは次のようなものだと思います:

$('.screen_text',this).hide();

this のコンテキストでクラス名 screen_text を持つ要素のみを戻す必要があります

于 2012-06-13T19:30:50.570 に答える
2

クラス セレクターが一致しすぎています。

//Hides the screen and text on mouseover
$('.screen').mouseover(function() {
    $(this).find('.screen_text').hide();
    $(this).slideUp(400);

});
//Shows the screen and text on mouseout
$('.portfolio img').mouseout(function() {
    $('.screen_text').show();
    $('.screen').slideDown(400);

});

jQuery を使用して、ホバーされた の子孫として.find()検索します。.screen_text.screen

于 2012-06-13T19:30:44.540 に答える
2

問題は、実行時に「screen_text」というクラス名を持つすべての要素を非表示にしていることです$('.screen_text').hide();。それらを選択または区別するためのより良い方法を見つける必要があります。

DOM の例を見ずしてこれ以上サポートを提供する方法はありません。この jQuery の実行には論理的なエラーがあるかもしれませんが、構文的には問題ありません。

于 2012-06-13T19:31:32.747 に答える