Jquery点击事件 - 需要两次点击才能触发

ste*_*eve 2 jquery onclick eventtrigger

这可能非常简单 - 但我很难发现正在发生的事情.

关于JS小提琴:http: //jsfiddle.net/3hHAX/

有两个链接输出到'打开视频模态'.

由于链接文本表明这两个链接应打开包含youtube视频的模型弹出窗口.

这是使用来自以下网站的prettyphoto库:http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/

由于某种原因,单击事件不会在第一次单击时触发.但是第二个工作.

(没有包含CSS所以看起来不是很模态,但你会看到下面的内容加载至少为了演示的目的).

任何人都可以建议出错的地方?

谢谢,

史蒂夫

use*_*654 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);
Run Code Online (Sandbox Code Playgroud)

演示: 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);
Run Code Online (Sandbox Code Playgroud)