0

div誰かが画像にマウスオーバーしたときに表示しようとしています。

ここに私のjQueryコードがあります:

var $i = jQuery.noConflict(); 
$i("#overlay-<?php echo $j;?>").hover(function () {
    $i("#overlay-show-<?php echo $j;?>").fadeIn("fast");
    $i("#overlay-show-<?php echo $j;?>").fadeOut("fast");   
});

ここに私のHTMLコードがあります

<div id="overlay-show-1" class="overlay-show" style="display: block;">
 <div class="product-price">
 <h2 class="product-name"><a title="Marotte Top"href="http://sabbathshop.com/index.php/apparel/marotte-top.html">Marotte Top</a></h2>   
 <div class="price-box">
 <span id="product-price-180" class="regular-price">
  <span class="price">$80.00</span></span>
  </div>
  </div>
   <div class="price-bottombg"></div>
 </div>
4

1 に答える 1

0

$i("#overlay-show-<?php echo $j;?>").is(":hidden")一致するセレクターがあるかどうかに関係なく、オブジェクトを返します。

length一致があるかどうかを確認する必要があります。

if ($i("#overlay-show-<?php echo $j;?>").is(":hidden").length>0) {

あなたの更新に応じて:

.hover()イベントの関数パラメーターは 1 つしかないため、ホバーしたときホバーアウトしたときにアクションが実行されます。

また、あなたが呼び出している関数では、fadeInその後に直接fadeOut. したがって、これにより要素がフェードインし、すぐに再びフェードアウトします(言及したちらつきが発生します)。

コードをfadeInホバー オーバー時のみfadeOut、ホバー アウト時のみに変更する必要があります。

$i("#overlay-<?php echo $j;?>").hover(function () {
    $i("#overlay-show-<?php echo $j;?>").fadeIn("fast"); 
}, function(){
    $i("#overlay-show-<?php echo $j;?>").fadeOut("fast");  
});
于 2012-09-27T09:42:41.107 に答える