2013-07-23 4 views
0

у меня есть следующий код:Javascript оповещения, когда элемент виден

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... 
} 

какие-либо идеи о том, что может быть не так?

ответ

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); 

     // 
    }); 

См Demo

Надежда помогает

+0

отлично, спасибо! – danyo

0
setTimeout('checkVisibility',1000)//every 1 second... 

Это неправильно, удалить одиночные кавычки (')

setTimeout(checkVisibility,1000); 
+0

я удалил одинарные кавычки и до сих пор не предупреждая? – danyo

+0

Я думаю, что также необходимо добавить открытые и закрытые фигурные скобки. – reporter

+0

'if (($ ('. LeftArrowMask'). Is (': visible')) && ($ ('. LeftArrowMask'). Parent (': hidden ') .length == 0)) 'возможно тоже. Также, где вы называете этот метод 'checkVisibility'? – Praveen

0

Вы можете установить только setInterval где-то в вашем коде.

setInterval(function() { 
    if ($('.leftArrowMask').is (':visible') && $('.leftArrowMask').parents (':hidden').length == 0) { 
     alert ("Visible!"); 
    } 
}, 1000); 
Смежные вопросы