0

我有以下代码:

var blink1 = function() {
    $('.leftArrowMask').hide();
    setTimeout(blink2, 5000);
};
var blink2 = function() {
    $('.leftArrowMask').show();
    setTimeout(blink1, 1000);
};
$(document).ready(function() {
    setTimeout(blink1, 1000);
});

这基本上显示一个 div 1 秒,然后将其隐藏 5 秒。

每当 div 可见时,我想显示一个警报。

我尝试了以下方法,但似乎不起作用:

function checkVisibility(){
  if ($('.leftArrowMask').is (':visible') && $('.leftArrowMask').parents (':hidden').length == 0)
  alert ("Visible!");
   setTimeout('checkVisibility',1000)//every 1 second...
}

关于什么可能是错的任何想法?

4

3 回答 3

1
 var blink1 = function () {
        $('.leftArrowMask').hide();
        setTimeout(blink2, 5000);
    };
    var blink2 = function () {
        $('.leftArrowMask').show();
        setTimeout(blink1, 1000);
    };
    $(document).ready(function () {

        setInterval(function () {
            if ($('.leftArrowMask').is(':visible') && $('.leftArrowMask').parents(':hidden').length == 0) {
                alert("Visible!");
            }
            setTimeout(blink1, 1000);
        }, 1000);

        //
    });

演示

希望有所帮助

于 2013-07-23T12:16:16.583 回答
0
setTimeout('checkVisibility',1000)//every 1 second...

这是错误的,去掉单引号(')

setTimeout(checkVisibility,1000);
于 2013-07-23T11:46:28.677 回答
0

您只能在代码中的某处设置 setInterval。

setInterval(function() {
    if ($('.leftArrowMask').is (':visible') && $('.leftArrowMask').parents (':hidden').length == 0) {
        alert ("Visible!");
    }
}, 1000);
于 2013-07-23T12:06:17.327 回答