2012-01-25 159 views
1

的jsfiddle全碼:http://jsfiddle.net/bvmdW/jQuery的動態選擇器和元素

我用jQuery的Embedly以取代縮略圖和視頻的YouTube鏈接。我在CSS中使用display:none來隱藏視頻部分。過程中的Embedly腳本將動態創建以下DOM:

<li id="1"> 
    <img rel="vidPreview-1" class="embedly" src="....."> 
    <div id="vidPreview-1" class="vidPreview"> iframe videos here </div> 
</li> 
<li id="1"> 
    <img rel="vidPreview-2" class="embedly" src="....."> 
    <div id="vidPreview-2" class="vidPreview"> iframe videos here </div> 
</li> 

兩個<img rel="vidPreview-X"<div id="vidPreview-X是動態的Embedly產生。

現在,我還會使用jQueryTools Overlay插件在單擊縮略圖時彈出隱藏的視頻。我用:

$("img[rel]").live('click', function() { 
    $(this).overlay().load(); 
}); 

但它似乎覆蓋插件不識別live()。在螢火蟲它說:uncaught exception: Could not find Overlay: vidPreview-X

有人可以請指導我如何使用jQueryTools覆蓋live()

+2

從這個頁面我發現你錯過了#rel =「vidPreview-1」。請檢查它或忘記在這裏發佈? – sathishkumar

回答

2

在img標籤中,你錯過了#的rel屬性,請將#添加到rel attr值。再次檢查。

<li id="1"> 
    <img rel="#vidPreview-1" class="embedly" src="....."> 
    <div id="vidPreview-1" class="vidPreview"> iframe videos here </div> </li> <li id="1"> 
    <img rel="#vidPreview-2" class="embedly" src="....."> 
    <div id="vidPreview-2" class="vidPreview"> iframe videos here </div> </li> 
+0

感謝您的幫助,它現在適用於現代瀏覽器。但是,它不會在IE8和IE7中工作,它仍然顯示和錯誤:'錯誤:拋出異常並且未捕獲 – Ramil

0

我不確定,但嘗試使用代理功能http://api.jquery.com/delegate/ 我幾次遇到live的奇怪行爲。

+1

「從jQuery 1.7開始,不推薦使用.live()方法。使用.on()附加事件處理程序。舊版jQuery的用戶應優先使用.delegate(),而不要使用.live()。 http://api.jquery.com/live/ – Stefan