所以,我需要做的是在页面上反复淡入淡出,直到按下“重置”按钮(不需要进一步的信息)。
所以,我在页面上有一个完全不透明的段落元素,id为'fail'。触发某个事件后,该元素需要反复淡入淡出。
所以,我这样做:
$("#fail").show(3000, blink);
闪烁功能如下所示:
function blink() {
var id;
if(divID == "lost"){
id = "#fail"
}else if(divID = "won"){
id = "#win";
}
$(id).fadeOut().fadeIn(blink);
}
其中的if语句是确定要闪存的段落元素。但是,当我点击上面的第一行代码时,没有任何反应。有什么想法吗?
答案 0 :(得分:1)
您的第二次比较似乎忘记了=
。该语句将divID
分配给"won"
,然后将其评估为布尔值(非假,NULL等等,因此它始终为true,id
将始终为"#win"
)。我在下面为你修好了:
function blink() {
var id;
if(divID == "lost"){
id = "#fail"
} else if (divID == "won") {
id = "#win";
}
$(id).fadeOut().fadeIn(blink);
}
现在这可能只是一个错字,如果是,那么我需要知道divID
变量是什么,以及它设置的位置可以帮助你。
我不确定你的应用程序中发生了什么,所以这可能是偏离基础的。话虽如此,为什么不制作两个闪烁函数,一个用于#win
,另一个用于#fail
?那么你就不需要在闪烁函数中使用if
语句,这似乎是你问题的根源。
或者,您可能想尝试使用CSS:text-decoration: blink;
。不过,我不确定它是否适合你。您可以向我们提供有关您的申请的更多信息,我们能够更好地回答;)。
答案 1 :(得分:0)
稍微缩短你的逻辑...假设divID设置正确,这可行:
$("#fail").show(3000, blink);
function blink() {
var id;
(divID == "lost") ? id="#fail" : id="#win";
$(id).fadeOut().fadeIn(blink);
}
答案 2 :(得分:0)
段落元素未能显示,因为在加载窗口时,我将它们设置为完全不透明。我认为,因为(这可能是错误的)fadeIn和Out切换了不透明度,所以这不会是一个问题。
无论如何,我没有把它们设置为不透明,而是打电话给
$("p").hide();
因此,当我打电话给show时,它会被显示并开始打开和关闭,直到游戏重置为止。感谢大家的所有提示。