检测div是否可见,并在10秒内更改颜色

时间:2011-12-15 02:10:19

标签: jquery time hidden visible

所以我正在显示一个按钮。单击它时,它会显示一个显示为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/

2 个答案:

答案 0 :(得分:1)

setTimeout(function() {
    $('#DivBlock').addClass('yellow');
}, 10e3);

jsFiddle

答案 1 :(得分:0)

第一个问题是你没有明确地调用你的if语句。我猜这个代码驻留在$(document).ready()块中,在这种情况下它只会在文档首次加载时运行。它不会像写的那样连续运行。

由于您通过单击按钮触发红色方块的显示,因此您不需要在发生时“检测”的侦听器功能。您知道何时发生,单击按钮时。所以在那里给你超时和换色代码:

$("#shower").click(function() {//click to show red square
  $('#DivBlock').show();
  setTimeout(function() {
    $('#DivBlock').addClass('yellow');
  }, 10000);
});

除非有其他我不知道的事情,否则应该这样做。