2011-03-27 57 views
0

我有一個頁面列出了div中包含的類與ad-container的內容。在那個容器裏有一個隱藏的div與廣告聯繫。在廣告類的懸停狀態下,我想爲廣告信息的顯示設置動畫效果。由於在特定頁面上有多個廣告,因此我只想要當前放置的廣告容器的廣告信息滑入。我的問題是,由於當您將鼠標懸停在任何廣告上時,有超過10個廣告頁面,所有的ads-contact div slideDown,而不是你正在盤旋的那個。Jquery Selector多個類(這個)

$(document).ready(function() { 
    $('.ad-container').hover(
          function(){ 
           $(".ad-contact").slideDown(1000); 
          }, 
          function(){ 
           $(".ad-contact").slideUp(1000); 
    }); 

}); 

我想,(這)在這裏使用,但我不知道。這真的會給我帶來光明。

<div class="ad-container"> 

     <div class="ad-title">title<span class="ad-title-img">(pic)</span></div> 
     <div class="ad-description">texttext</div> 
     <div class="ad-contact" style="display:none">contact poster</div> 
     <div class="ad-sellerinfo" style="display:none">* Verified ***-****<br /> 
Paid Member</div> 
     </div> 

回答

2

jQuery構造函數接受第二個參數,它可以用來覆蓋選擇的上下文。像這樣的東西應該工作:

$(document).ready(function() { 
    $('.ad-container').hover(
          function(){ 
           $(".ad-contact", this).slideDown(1000); 
          }, 
          function(){ 
           $(".ad-contact", this).slideUp(1000); 
    }); 

}); 

另外,值得一提的是,$(".ad-contact", this)在內部轉換爲:$(this).find(".ad-contact")所以你可以使用這個相反,它可能會稍快。

+0

謝謝你提到,對數千元素更快。 – 2011-07-06 12:46:07

0

你應該用事件來處理這個問題, 首先,你需要像 廣告container.hover(函數(事件){ event.target.children();

})

,然後。this.show()延遲(1000).hide();

複製粘貼時,代碼示例提供可能無法正常工作,您必須在編輯器中編寫自己的代碼。

1

您可以使用.children()選擇:

$(this).children(".ad-contact").slideDown(1000); 

這樣,您將只在類ad-contact採取行動,如果它在上下文中對象(這是目前正在徘徊的對象)

的孩子

看到一個working demo here

+0

謝謝你 – 2011-03-27 18:40:54

+0

完全沒問題=) – Scoobler 2011-03-27 18:53:09