2011-03-14 84 views
0

下面是在瀏覽器中呈現的html代碼。我想隱藏div.embed元素:如何用jquery隱藏這個元素?

<div id='video_div'> 
<img src="http://i3.ytimg.com/vi/fTWpHknumdg/hqdefault.jpg" style="width: 200px; "> 
<div class="embed"> 
<object width="300" height="194"> 
<param name="wmode" value="opaque"><param name="movie" value="http://www.youtube.com/v/fTWpHknumdg?version=3"> 
<param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"> 
<embed src="http://www.youtube.com/v/fTWpHknumdg?version=3" type="application/x-shockwave-flash" width="300" height="194" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"> 
</object> 
</div> 
</div> 

下面是我現在運行的js代碼。這對我不起作用。但是似乎在通過第一個答案提供的jsfiddle工作:

$(document).ready(function() { 

$('a.oembed').embedly({maxWidth:300,'method':'replace'}).bind('embedly-oembed', function(e, oembed){ 
    $("#video_div").prepend($("<img>", { src: oembed.thumbnail_url, width:200 })); 
}); 

$('div.embed').hide(); 
}); 

難道元素加載後的隱藏代碼被稱爲?我怎樣才能解決這個問題?

+0

你究竟想隱藏什麼?也許包含您正在嘗試處理的元素的HTML片段。 – 2011-03-14 02:35:29

+0

好吧,我發佈了我的瀏覽器看到的HTML。順便說一句,請注意,我確實嘗試了:'$('div.embed')。hide();'這是行不通的。我想隱藏嵌入的視頻。如果我做'$('#video_id')。hide();'整個div都會隱藏,但我不想隱藏該div中的圖像。 – 2011-03-14 03:16:58

回答

1

是否有必要使用Javascript來隱藏DIV?更簡單的CSS做

div.embed { display: none; } 

更新

$("#SomeElement").click(function() { 
    $("div.embed").toggle(); 
}); 

的CSS將照顧的初始狀態;此後,Javascript代碼將啓用隱藏/顯示DIV。

+0

這可行,但我需要將其更改回點擊操作... – 2011-03-14 05:07:40

+0

爲什麼這個js代碼不工作? \t'$(「#video_div img」)。點擊(功能(){$(「div.embed」)。toggle(); \t});' – 2011-03-14 05:52:18

+0

我確實添加了CSS樣式,但視頻確實當我點擊縮略圖時不會出現:/ – 2011-03-14 05:53:28

0

我試過(jsfiddle):

$(document).ready(function() { 
    $('div.embed').hide(); 
}); 

這工作得很好。也許隱藏代碼在元素被加載到DOM之前被調用?

+0

我怎麼知道如果是這樣的情況?我剛剛發佈了我現在使用的js代碼。是否有任何錯誤? – 2011-03-14 03:33:17

+0

開始想起它,這似乎是唯一可能的解釋。如何在加載元素後調用隱藏代碼? – 2011-03-14 03:38:05

+0

我不確定嵌入式API的細節,但可能可以在前置後添加回調函數內部的.hide()。 – ash 2011-03-14 03:59:40

0

嘗試將它們鏈接在一起。因此,像這樣(使用兒童()來查找內部的div:

$('a.oembed').embedly(
    {maxWidth:300,'method':'replace'}).bind('embedly-oembed', 
    function(e, oembed){ 
     $("#video_div").prepend($("<img>", { 
     src: oembed.thumbnail_url, width:200 })).children("div.embed").hide(); 
}); 

如果它總是假設爲隱藏,然後通過CSS就去做

更新:

嘗試使用load()$(document).ready()

$('div.embed').load(function() { 
    $('div.embed').hide(); 
}); 

這將會觸發一旦元素,一切都在它是loade d。

+0

沒有工作.... – 2011-03-14 05:03:20

+0

嘗試使用'.load()'功能。請參閱更新。 – RDL 2011-03-14 05:24:51

+0

該作品!!!!謝謝! – 2011-03-14 05:29:13