2012-01-25 117 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