在JQuery中有褪色的问题.任何想法



所以,我需要做的是有一些东西在页面上反复淡出,直到'reset'按钮被按下(不需要的进一步信息)。

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

所以,我这样做:

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

与blink功能看起来如下:

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

if语句决定要闪烁哪个段落元素。然而,当我点击上面的第一行代码时,什么也没有发生。知道为什么吗?

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

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

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

可能的解决方案:

我不太确定你的应用程序中发生了什么,所以这可能是错误的。话虽如此,为什么不做两个blink函数,一个用于#win,一个用于#fail ?那么你就不需要在闪烁函数内的if语句,这似乎是你的问题的根源。

或者,您可能想尝试使用CSS: text-decoration: blink;。但我不确定这对你是否有用。

您提供的申请信息越多,我们越能更好地回答您的问题。

把你的逻辑缩短一点…假设divID被正确设置,这可以工作:

$("#fail").show(3000, blink);
function blink() {
    var id;
    (divID == "lost") ? id="#fail" : id="#win";
    $(id).fadeOut().fadeIn(blink);
}

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

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

不管怎样,一开始我没有将它们设置为不透明,而是调用

$("p").hide();

这样当我调用show时,它就会显示并开始切换开关,直到游戏被重置。谢谢大家的建议。

相关内容

最新更新