2013-03-17 134 views
2

這裏是JavaScript停止視頻:如何從隱藏DIV打

function unhide(divID) { 
    var item = document.getElementById(divID); 
    if (item) { 
     item.className=(item.className=='hidden')?'unhidden':'hidden'; 
    } 
} 

下面是HTML:

<a href="javascript:unhide('verizon');">VERIZON<br> 
<a href="javascript:unhide('sap');">SAP</a><br> 

<div id="sap" class="hidden"> 
    <embed src="videos/sap.mov" height="270" width="480" scale="tofit"></embed> 
</div> 
<div id="verizon" class="hidden"> 
    <embed src="videos/verizon.mov" height="270" width="480" scale="tofit"></embed> 
</div> 

當我在SAP點擊播放視頻。當我點擊Verizon時,它也會播放,但即使它隱藏,SAP視頻也會繼續播放。

我對JavaScript很陌生。

有沒有更好的方法來做到這一點?如何解決我已有的代碼?

+0

確保您標記出適當的答案。它使人們更願意回答你未來的問題。 – Preston 2013-03-19 00:47:21

回答

0

你可以做這樣的事情:

function unhide(divID) { 
var item = document.getElementById(divID); 
var other = {"verizon":"sap","sap":"verizon"}; 
if (item) { 
    item.className=(item.className=='hidden')?'unhidden':'hidden'; 
    var tar = document.getElementById(other[divID]); 
    tar.className = 'hidden'; 
    tar.getElementsByTagName("embed")[0].stopVideo(); 
} 
} 

對方只是一個對象,它可以方便地訪問視頻的ID被停止。它使用divID中的字符串來獲取另一個字符串。

然後,一旦你有了其他元素,你可以遍歷它的子元素以找到embed元素。 [0]用於獲取第一個匹配元素(您的視頻)。然後你可以使用javascript的stopVideo()方法來停止視頻。

+0

感謝特拉維斯。我不確定這是否奏效。我可能錯誤地解釋了自己。當我點擊SAP視頻顯示。如果我點擊Verizon,Verizon的音頻也開始播放。除非我再次單擊SAP以「隱藏」它,否則我無法看到Verizon視頻。也許這是HTML的問題呢?謝謝你的幫助! – user2180362 2013-03-17 22:09:24

+0

@ user2180362 - 嘗試隱藏另一個當你顯示當前的一個,我在編輯中顯示行:'tar.className ='hidden';' – 2013-03-17 22:15:45

0

我的首選解決方案是將該div的HTML設置爲null,而不是嘗試操縱其中的內容以使其閉嘴。畢竟它是隱藏的,所以爲什麼要把它留在那裏。

document.getElementByID('div').innerHTML = ""; 

因此完全刪除那裏的任何東西。

而要取消隱藏它(請注意您可能有這個有點坐立不安獲得報價的行爲)

document.getElementByID('div').innerHTML = '<embed src="videos/sap.mov" height="270" width="480" scale="tofit"></embed>'; 

我認爲閃存或類似視頻播放機的重元素,這將是一個更好的解決方案,想象一個包含其中30個隱藏的頁面,它會變得非常困難。