【发布时间】:2013-12-27 16:43:42
【问题描述】:
如果在使用 jQuery 时遇到问题,我不知道如何解决。 简单地说,我得到了以下内容:
var overlay;
if(condition == "test") {
overlay = $("<div></div>");
}
else if (condition == "test2") {
console.log("first-log");
overlay = $("<span></span>");
}
console.log("second-log");
overlay.prependTo("body");
如果条件与“if”匹配,一切正常,叠加层充满内容并将添加到正文中。
当条件匹配“else if”时,我收到一个错误,即覆盖未定义。
所以我放了一些 console.log() 来查看我的代码在做什么。 两个 console.log 操作都被触发,但在我的浏览器控制台中,我首先看到的是“第二条日志”,然后是“第一条日志”。
我的代码尝试在“if / else if”完成之前添加前缀,即使条件匹配。
我试图寻找答案,但我根本找不到任何东西,所以我希望这里有人可以帮助我。谢谢!
【问题讨论】:
-
我猜代码应该是 overlay = $("");
-
注意到并改变了这一点。但这只是一个虚拟代码,写得很快。我自己的代码比较复杂,所以这只是一个例子。
-
代码是否以某种方式被多次调用?是在事件处理程序、setTimeout 还是其他东西中?
-
当您添加
else语句时会发生什么变化?else { console.log(condition);} -
您提供的代码很好,一定是未发布的代码中导致问题的原因。
标签: jquery if-statement arrangeoverride