Ich denke, Sie haben etwas falsch konfiguriert. Der Code funktioniert gut (obwohl ich das Timeout auf 1 Sekunde für die Demo fiel gelassen):
$('#one').hide();
$('#two').hide();
$('.button').click(function() {
setTimeout(function() {
$('#one').show();
setTimeout(function() {
$('#two').show();
}, 1000);
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<p id="one">
Here is the first sentence
</p>
<p id="two">
Here is the second sentence
</p>
</div>
<button class="button">
click
</button>
Eine zweite Option, die wahrscheinlich übertrieben ist, aber wenn man am Ende mit vielen dieser Elemente, könnte man eine einzige Funktion verwenden, die iteriert über alle Elemente jeweils eine um ein Vielfaches von 5 Sekunden Verzögerung:
$('#one').hide();
$('#two').hide();
$('.button').click(function() {
$('#one, #two').each(function(index) {
\t $(this).delay(5000 * (index + 1)).queue(function() { $(this).show(); });
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<p id="one">
Here is the first sentence
</p>
<p id="two">
Here is the second sentence
</p>
</div>
<button class="button">
click
</button>
ich dieses Verhalten nicht replizieren kann, was Sie funktioniert gut gezeigt: https://jsfiddle.net/Ln74dLp2/. Können Sie bitte ein Problem aufstellen, das das von Ihnen beschriebene Problem hat? Hinweis Ich habe das Timeout reduziert, um es schneller testen zu können. –
Meinst du, dass die zweite Funktion ausgeführt wird, sobald du klickst, oder sie nicht nach der ersten Funktion wartet? – Barmar
Es wartet nicht nach der ersten Funktion –