2017-08-21 1 views
1

Ich habe einige Teilabschnitte auf Klick auf den Button zu verstecken, hier ist der Codenicht in der Lage, die Logik der SetTimeout in diesem peice von Code zu verstehen

$('#myButton').on('click', function (event){ 
    event.preventDefault(); 
    $('#panel').hide(); 
    $('#header').hide(); 
    setTimeout(function(){ $('#sub-section').attr('style','display:none;'); }, 100); 
}); 

auf die letzten Anweisungen aus, wenn i Funktion gesetzt Timeout entfernen dann Anzeige Attribut zu keiner ist nicht auf #sub-section festgelegt. Ich habe gerade erfahren, was hier eigentlich benötigt wird. Es sollte auch ohne settimeout funktionieren.

Wenn Funktion hide ist zu viel Zeit auszuführen, ich habe versucht,

$('#panel').attr('style','display:none;'); 
$('#header').attr('style','display:none;'); 
$('#sub-section').attr('style','display:none;'); 

auch, aber es funktioniert nicht. nur bei 3. Aussage.

Antwort

0

In diesem Fall wird display: none auf Ihr Element nach 100 Millisekunden angewendet werden. Ich denke, Dies ist getan, weil oben hide Funktion 2 mal aufgerufen haben, und diese Funktion wird mit Animation arbeiten, die einige Zeit dauern wird. So wird Ihre hide Funktion beenden seine in etwa less or equal to 100 milliseconds als display: none wird

+0

warum nicht es gerade nach dem zweiten statement.i.e ohne SetTimeout Ausführung. –

+0

@Unknownguy siehe bearbeitete Antwort. Ich denke nur, dass –

+0

wenn Verstecken Zeit braucht, um auszuführen, habe ich angewendet .attr ('style', 'display: none;'); auf den ersten beiden Aussagen auch, aber es funktioniert immer noch nicht. –

0

ich hoffe, angewendet werden Sie Ihre Antwort hier finden. und ändern Sie auch den Timing-Wert und beobachten Sie die Ausgabe, dann werden Sie verstehen.

[http://jsfiddle.net/mxgtaLzw/2/] 

Ohne Funktion:

[http://jsfiddle.net/mxgtaLzw/3/] 
+1

Während dies theoretisch die Frage beantworten könnte, [wäre es vorzuziehen] (// meta.stackoverflow.com/q/8259), die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. –

Verwandte Themen