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%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
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.
Tags und Links javascript fadein fade