2016-11-30 3 views
1

Ich verwende Remote-Javascripts, um zwei divs auf meiner Website zu füllen.jquery div verstecken funktioniert nicht beim ersten Laden

Ich verwende den folgenden Code, um nur ein div anzuzeigen, wenn Inhalt auf beiden Divs verfügbar ist. Ich habe diesen Code am Ende der Seite hinzugefügt:

$(document).ready(function(){ 
    setTimeout(function() { 
     if ($("#flix-inpage #inpage_responsive").length > 0) { 
      $("#ccs-inline-content").hide(); 
     } else { 
      $("#ccs-inline-content").show(); 
      return false; 
     } 
    }, 2000); 
}); 

ich eine CSS-Klasse angegeben haben:

#ccs-inline-content{ 
    display: none; 
} 

Wenn beide DIV gleichen Inhalt

Das Problem, das ich habe haben ist, dass #ccs-inline-content nicht beim ersten Laden versteckt ist. Wenn ich die Seite mehrmals neu lade, dann tritt #ccs-inline-content - hide() ein, sonst ist der Inhalt sichtbar.

Ich habe verschiedene Browser versucht, aber das gleiche Ergebnis.

+0

versuchen, das setTimeout zu entfernen – Pixelomo

+2

setTimeout wird nur einmal ausgeführt, in Ihrem Fall nach 2 Sekunden. Dauert es länger als das für die div werden bevölkert? Wenn dies der Fall ist, sollten Sie stattdessen setInterval berücksichtigen, wodurch die Funktion wiederholt in einem Intervall ausgeführt wird. http://www.w3schools.com/jsref/met_win_settimeout.asp –

+0

Es versteckt sich sofort für mich - wegen CSS nicht JQuery (weil dies nach 2 Sekunden wegen 'setTimeout' eintritt). Überprüfen Sie diese [Codepen] (http://codepen.io/PleaseBugMeNot/pen/QGOmMY) –

Antwort

0

Ich teste diesen Code, aber gut funktioniert. nur ich hinzufügen .text() Funktion in diesem Code

$(document).ready(function(){ 
 
    setTimeout(function() { 
 
     if ($("#flix-inpage").text().length <= 0) { 
 
      $("#ccs-inline-content").show(); 
 
     } else { 
 
      $("#ccs-inline-content").hide(); 
 
     } 
 
    }, 2000); 
 
});
#ccs-inline-content{ 
 
display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div id="flix-inpage">12</div> 
 

 
<div id="ccs-inline-content">ok</div>

0

Wenn ich richtig verstehe, wollen Sie #flix-inpage gezeigt werden und #ccs-inline-content versteckt werden, es sei denn #flix-inpage leer. Dies würde die Arbeit machen:

$(document).ready(function() { 
    if ($("#flix-inpage").children().length) { 
    $("#ccs-inline-content").hide(); 
    } else { 
    $("#ccs-inline-content").show(); 
    } 
}); 

Sie müssen die anderen Skripten um sicherzustellen, dass Sie Finish erwähnt, bevor diese ausgeführt wird, so dass diese irgendwo setzen, nachdem Sie die beiden anderen, an der Unterseite des <body> Tag auszuführen.

Verwandte Themen