所以我正在显示一个按钮。单击它时,它会显示一个显示为none的红色正方形。方块的内联元素现在是display:block。
我试图检测广场显示后:阻止,提醒消息,并在10秒后将颜色更改为黄色 。
以下代码似乎不起作用,尤其是不运行的jQuery if语句:
$("#shower").click(function() {//click to show red square
$('#DivBlock').show();
});
if ($('#DivBlock').css("display") != "none") {//statement does not work
alert ("Visible for 10 seconds, then turn yellow!"); //need to alert this immediately
$('#DivBlock').addClass('yellow'); //need to do this after 10 seconds
}
知道怎么解决这个问题吗? http://jsfiddle.net/LnPpe/2/
答案 0 :(得分:1)
setTimeout(function() {
$('#DivBlock').addClass('yellow');
}, 10e3);
答案 1 :(得分:0)
第一个问题是你没有明确地调用你的if语句。我猜这个代码驻留在$(document).ready()
块中,在这种情况下它只会在文档首次加载时运行。它不会像写的那样连续运行。
由于您通过单击按钮触发红色方块的显示,因此您不需要在发生时“检测”的侦听器功能。您知道何时发生,单击按钮时。所以在那里给你超时和换色代码:
$("#shower").click(function() {//click to show red square
$('#DivBlock').show();
setTimeout(function() {
$('#DivBlock').addClass('yellow');
}, 10000);
});
除非有其他我不知道的事情,否则应该这样做。