2012-09-27 222 views
0

我試圖顯示一個div當有人mouseover圖像。.hover jquery閃爍mouseover

這裏是我的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> 
+0

我編輯了上面的代碼。現在,我想要顯示的div不停地閃爍。我怎樣才能控制它,以便它只在我的客戶將鼠標移動到「#overlay - <?php echo $ j;?>」 – Muhammad

回答

0

$i("#overlay-show-<?php echo $j;?>").is(":hidden")會返回一個對象是否有匹配的選擇。

您應該檢查length,看看是否有匹配:

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

在回答您的更新:

因爲你只需要爲.hover()事件一個功能參數,這將當您懸停時懸停在之上時會被採取行動。

同樣在您的功能中,您正在呼叫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"); 
}); 
+0

上時才淡出,我試過但仍無法使用。現在懸停不再起作用了。 – Muhammad

+0

@Muhammad發佈您的HTML代碼 – Curt

+0

這是一個PHP代碼。我不知道如何把HTML給你。 – Muhammad