2011-03-14 92 views
0

這裏是我的瀏覽器看到的HTML。我想隱藏div.embed元素:這個jQuery隱藏功能只是不希望工作

<div id="video_div"> 
<img src="http://i2.ytimg.com/vi/ERF9lCf86I8/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/ERF9lCf86I8?version=3"> 
<param name="allowFullScreen" value="true"> 
<param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/ERF9lCf86I8?version=3" type="application/x-shockwave-flash" width="300" height="194" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"> 
</object> 
</div> 
</div> 

這裏是我的application.js代碼動態替換其對應的嵌入式視頻的鏈接,顯示縮略圖和不成功隱藏視頻:

$(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

似乎在這裏運行良好。 - http://jsfiddle.net/Marcel/umQpw/ – Marcel 2011-03-14 04:45:23

+0

@Marcel:我仍然看到(在Linux上的Chrome)的視頻。 – 2011-03-14 04:47:24

+0

啊,我在Chrome以及 – 2011-03-14 04:48:24

回答

1

我預計代碼以上hide呼叫失敗,呼叫根本沒有得到執行。如果我插入假冒embedly插件,它的工作原理如下:http://jsbin.com/ucuru4/2

我建議在調試器中單步執行代碼。 Chrome,Safari,Opera和IE8都有內置的調試器。有Firebug for Firefox,以及VS.Net的免費版本,用於在以前版本的IE上進行調試。

如果代碼沒問題,但您發現embedly呼叫間歇性失敗,可能最好將其包裝在try/catch區塊中。

+0

我真的不清楚如何做這方面的工作。我結束了使用CSS屬性來隱藏視頻,但現在我實現了一個簡單的jQuery點擊功能來切換類,它不起作用(雖然它適用於其他人的jfiddle黑客)。我認爲我可能會犯一個根本性的錯誤,那就是沒有人能夠看到代碼片斷。您能介意快速瀏覽一下我的代碼嗎?沒有太多,它是一個Ruby on Rails應用程序。 – 2011-03-14 06:39:26

+0

@Justin:恐怕我不是紅寶石的人。不過,我確實認爲,如果您在調試器中單步執行客戶端代碼,您會發現出了什麼問題。在Chrome中使用調試器非常簡單:按Shift + Ctrl + I,導航到Scripts選項卡,找到$('div.embed')。hide();'line,然後單擊它左邊的陰影線在那裏放置一個斷點。 – 2011-03-14 06:50:12

+0

移CTRL L不爲我做任何事情:/ – 2011-03-14 06:53:57