这可能非常简单 - 但我很难发现正在发生的事情。
在JS小提琴上: http://jsfiddle.net/3hHAX/
有两个链接输出到“打开视频模式”。
正如链接文字所示,这两个链接应该打开包含youtube视频的模型弹出窗口。
这是使用来自:http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/
的prettyphoto库由于某种原因,点击事件不会在第一次点击时触发。 但是第二次工作。
(没有包含CSS所以看起来不是很模态,但你会看到下面的内容加载至少是为了演示的目的)。
有人可以说明出了什么问题吗?
谢谢,
史蒂夫
答案 0 :(得分:5)
初始化后触发click事件,只允许初始化一次。
(function($) {
$(".watch-this a, .field-name-field-embed-code a").live('click',function(){
if (!$(this).is(".pPhoto")) {
$(this).prettyPhoto({
social_tools: ''
}).addClass("pPhoto").click();
}
return false;
});
})(jQuery);
演示: http://jsfiddle.net/3hHAX/3/
编辑以澄清:
这是在动态元素上初始化插件的一种非常常见的方法。如上所述,如果元素不是动态的,最好在dom上初始化。
注意:强>
.live
已弃用,您应该使用.on
(function($) {
$(document).on("click",".watch-this a, .field-name-field-embed-code a",function(){
if (!$(this).is(".pPhoto")) {
$(this).prettyPhoto({
social_tools: ''
}).addClass("pPhoto").click();
}
return false;
});
})(jQuery);
答案 1 :(得分:1)
谢谢大家,
这两个回复都帮我最终解决了。
更新的JSFiddle中的最终解决方案:
似乎prettyPhoto在点击事件上附加了它自己,只需要应用那些dom元素。
谢谢, 史蒂夫
答案 2 :(得分:0)