2012-11-16 102 views
0

當DIV出現時,我需要運行javascript(停止JWPlayer)。它顯示約。頁面完全加載15秒後。當div出現時運行javascript

我到目前爲止

if (document.getElementById("overlay_div")) { jwplayer().stop(); } 

我想我的代碼查找overlay_div在頁面加載的時間,而不是一段時間後(在這種情況下,15秒)

編輯代碼:它事實上,DIV實際上一直存在,但在此時間間隔之後,它從display:none切換到display:block。有沒有什麼辦法來運行腳本煥格變成爲display:block

EDIT2:我設法解決這個我自己有@elbunuelo 這裏的幫助,是任何人的情況下的代碼需要它:

var interval = setInterval(function(){ 
if (document.getElementById("overlay_main_div").style.display=="block"){ 
     jwplayer().stop(); 
     clearInterval(interval); 
} }, 1000); 
+2

而不是基於div的可見性的基礎上你的邏輯是不是更好地把jwplayer()。停止()在實際顯示div的相同功能? – lostsource

回答

0

您是否嘗試過使用間隔?即如果div存在,則每隔1000 ms檢查一次,然後停止播放器?

var interval = setInterval(function(){ 
    if (document.getElementById("overlay_div")) { 
      jwplayer().stop(); 
      clearInterval(interval); 
    } 
}, 1000); 
+0

感謝這很有幫助,但事實證明,DIV實際上始終存在,但在此時間間隔之後它會從display:none切換到display:block。有沒有什麼辦法可以運行腳本,輪到顯示:block? – user1829531

+0

我知道如何在Mootools中做到這一點,但我不記得如何在原生Javascript中獲得特定的樣式規則。你使用任何框架? 快速編輯:如果你沒有使用任何框架,[這](http://stackoverflow.com/questions/4172871/javascript-get-styles)文章可能會得心應手。只要獲得'顯示'樣式並檢查它是否設置爲阻止而不是檢查元素是否存在 – elbunuelo

0

您可以在div後面添加腳本標記,以便在標記就位時運行。

<div id="overlay_div"></div> 
<script type="text/javascript"> 
if (document.getElementById("overlay_div")) { jwplayer().stop(); } 
</script> 
0

這取決於div元素的顯示方式:

-

var times=0; 
function divcheck() { 
    if (document.getElementById("overlay_div")) { jwplayer().stop(); } 
    else if(times<10) { times++; setTimeout(divCheck,1000); } 
    } 

setTimeout(divCheck,15000); 
相關問題