2015-12-29 71 views
2

我有一個<div>,它有不同的元素。.hide()子元素延遲隱藏

問題是,如果我觸發jQuery的.hide(),父母<div>幾乎立即隱藏(與它的背景色)和其他元素只是掛在「空氣」,並有輕微的延遲消失,他們甚至有相互之間的延遲,像所有一行中無法隱藏的元素。

我已經搞砸了CSS幾個小時,轉換是相同的,我不能在jsFiddle中複製這個問題。

可能是什麼問題?

<div class="map-marker-wrapper"> 
    <div class="map-marker-container"> 

     <div class="arrow-down"></div> 

     <img src="' . $marker_thumbnail . '" /> 

     <div class="content"> 
      <a href="' . $marker_permalink . '"> 
      <h5 class="title">' . $marker_title . '</h5> 
      </a>' . 
      $marker_price . ' 
      <div class="more-content"> 
       <span>' . $marker_size . ' </span> 
       <span> ' . $marker_price. ' </span> 
      </div> 
     </div> 

    </div> 
</div> 

removeMarkers(); 

//Remove map markers and marker cluster 
function removeMarkers() { 

    for(i = 0; i < newMarkers.length; i++) { 

     markers[i].setMap(null); 

     //Close infoboxes 
     if (markers[i].infobox.getVisible()) { 

      markers[i].infobox.hide(); 
     } 
    } 

    if (cluster) { 

     cluster.clearMarkers(); 
    } 

    markers = []; 
    newMarkers = []; 
    bounds = []; 
} 
+2

我建議你包括cs和js – guradio

+0

隱藏父元素會自動隱藏它的所有子元素。你必須有一個插件,導致你看到的奇怪的隱藏。 – Barmar

+1

如果您更改hide()以隱藏(1),您可以使用jQuery –

回答

0

markers[i].infobox.hide();更改爲jQuery('.infoBox').hide();可消除此問題。

我不知道它是否有任何影響(性能或其他)但我想時間會告訴。

1

你可以嘗試這樣的

$( 「格」).hide( 「慢」);

和用於多個參考:

​​

0

使用

e.stopPropagation(); 

避免隱藏父元素

例如在JS小提琴:https://jsfiddle.net/t8Lnsux5/5/

$(".more-content").click(function(e){ 
e.stopPropagation(); 
    $(this).fadeOut('slow'); 
}); 

$(".content").click(function(e){ 
e.stopPropagation(); 
    $(this).fadeOut('slow'); 
});