0

所以,我需要做的是在页面上反复淡入淡出,直到按下“重置”按钮(不需要更多信息)。

所以,我在一个完全不透明的页面上有一个段落元素,id 为“失败”。触发某个事件后,该元素需要反复淡入和淡出。

所以,我这样做:

 $("#fail").show(3000, blink);

闪烁功能如下所示:

function blink() {
    var id;
    if(divID == "lost"){
     id = "#fail"
    }else if(divID = "won"){
     id = "#win";
    }

 $(id).fadeOut().fadeIn(blink);
}

中的 if 语句确定要闪烁的段落元素。但是,当我点击上面的第一行代码时,什么也没有发生。任何想法为什么?

4

3 回答 3

1

看起来您忘记了=第二次比较。该语句分配divID"won",然后将其评估为布尔值(它不是 false、NULL 等,因此它始终为 true 并且id将始终为"#win")。我在下面为你修复了它:

function blink() {
    var id;
    if(divID == "lost"){
        id = "#fail"
    } else if (divID == "won") {
        id = "#win";
    }

    $(id).fadeOut().fadeIn(blink);
}

现在这可能只是一个错字,如果是,那么我需要知道divID变量是什么,以及它设置在哪里来帮助你。

可能的解决方案:

我不确定您的应用程序中发生了什么,所以这可能是离谱的。话虽如此,为什么不制作两个闪烁功能,一个 for#win和一个 for #fail?那么你就不需要if闪烁函数中的语句,这似乎是你问题的根源。

或者,您可能想尝试使用 CSS: text-decoration: blink;。不过,我不确定它是否适合你。您可以向我们提供的有关您的申请的信息越多,我们就能越好地回答;)。

于 2013-04-09T18:27:52.863 回答
0

稍微缩短了你的逻辑......假设 divID 设置正确,这有效:

$("#fail").show(3000, blink);

function blink() {
    var id;

    (divID == "lost") ? id="#fail" : id="#win";
    $(id).fadeOut().fadeIn(blink);
}

小提琴:http: //jsfiddle.net/uYHG5/

于 2013-04-09T18:32:10.690 回答
0

段落元素无法显示,因为在加载窗口时,我将它们设置为完全不透明。我认为既然(这可能是错误的)fadeIn 和 Out 切换了不透明度,所以这不会是一个问题。

无论如何,我最初并没有将它们设置为不透明,而是打电话给

$("p").hide();

因此,当我调用 show 时,它会显示出来并开始打开和关闭,直到游戏重置。感谢大家的所有提示。

于 2013-04-09T20:34:18.170 回答