Webサイトにカードが表示されています。私は、現在ホバーしているカードにラベルを表示したい。クラスを使用してjqueryの正しい要素を参照する方法
main.js
$('.card').on("mouseover", function() {
$('.ui.right.corner.label').show();
});
$('.card').on("mouseout", function() {
$('.ui.right.corner.label').hide();
});
これは私が特定のカードのラベルが、私はカードのいずれかに置くたびに表示されていることを実現するまで正常に動作するように見えました。
のindex.php
<!--first card-->
<div class="card" onclick="window.location='product.php';">
<img src="img/test1.jpg" class="image">
<a class="ui right corner label">
<i class="heart icon"></i>
</a>
</div>
<!--second card-->
<div class="card" onclick="window.location='product.php';">
<img src="img/test2.jpg" class="image">
<a class="ui right corner label">
<i class="heart icon"></i>
</a>
</div>
<!--third card-->
<div class="card" onclick="window.location='product.php';">
<img src="img/test3.jpg" class="image">
<a class="ui right corner label">
<i class="heart icon"></i>
</a>
</div>
私は現在、Rajaprabhuの答えを使って、子要素の問題を修正しました。ただし、このラベルはデフォルトでウェブサイトに表示されています。 .hide
を非表示にしていますが、ウェブサイトの読み込み時にラベルを表示しない方が良いでしょうか?あなたはこれらのイベントハンドラの内部でthis
リファレンスを使用する必要が
あなたは、関数(){$ ( "マウスオーバー" に $( 'カード ')を使用することができます(この).closest('。ui.right.corner.label')。ショー(); }); $( '。card')。( "mouseout"、function(){ $(this).closest( '.ui.right.corner.label')。hide(); }); –
@Allloushあなたの答えをありがとう!子どものために、以下も参照してください。うまくいきました:) – iWillGetBetter