Reine JavaScript-Einblendfunktion

8

Hallo Freunde, ich möchte ein div einblenden, wenn ich auf ein anderes div klicke und dafür den folgenden Code benutze. Code1 funktioniert gut, aber ich muss den Code2 verwenden.

Ich weiß, dass es jQuery gibt, aber ich muss dies in JavaScript machen

Kannst du mir sagen, was für einen Fehler ich mache oder was ich ändern muss ...

Code1 --- Funktioniert gut

%Vor%

Code2 --- Funktioniert nicht

%Vor%     
kanudo 23.04.2014, 12:30
quelle

6 Antworten

19

Basierend auf dieser Website EDIT-1
Funktion hinzugefügt, damit der Benutzer die Dauer der Animation festlegen kann (@Marzian-Kommentar)

Sie können dies versuchen:

%Vor%

DEMO

    
laaposto 23.04.2014, 12:41
quelle
2
%Vor%     
Kai 24.04.2014 12:23
quelle
1

Scheint so, als ob Sie versuchen, Ihr Element in eine Zeichenkette umzuwandeln. Probieren Sie dies stattdessen

aus %Vor%

Was passiert hier ist, dass ich eine anonnymous Funktion aufrufen, wenn der Timer trifft, und von dieser Funktion, führen Sie meine Funktion aufrufen, um zu setzen.

Ich hoffe, es hilft. Jonas

    
Jonas m 23.04.2014 12:34
quelle
1

Das Problem hier ist, dass Sie die Methode "pass-a-string" verwenden, um setTimeout zu verwenden. Was ist im Grunde nur eine versteckte eval .

Es ist erwähnenswert, dass dies eine schlechte Übung, langsame Leistung und Sicherheitsrisiko ist.

(siehe Fragen wie: setTimeout () mit String oder (anonyme) Funktionsreferenz? speedwise )

Der Grund dafür ist, dass "seto(" + ele + "," + i + ")" auf "seto('[object HTMLDivElement]', 1)" auswertet. Sie möchten wirklich den Verweis auf das ele -Objekt übergeben, aber der Wert wird in eine Zeichenfolge umgewandelt, wenn Sie versuchen, ein Objekt auf eine Zeichenfolge zu verketten. Sie können dies umgehen, indem Sie die set-Methode "pass-a-function" verwenden.

setTimeout(function() { seto(ele, i); }, i * 1000);

Ich glaube, dass diese Änderung Ihr Code2-Verhalten mit Code1 vergleichbar macht.

    
sejordan 23.04.2014 12:52
quelle
1

Im Folgenden finden Sie die vollständigen Antworten auf meine Frage

ANS1 --- DEMO

%Vor%

ANS2 --- DEMO

%Vor%     
kanudo 24.04.2014 11:45
quelle
1

Meine Version

%Vor%     
ShAkKiR 16.06.2016 08:04
quelle

Tags und Links