jQuery live()...必须点击两次才能激活链接?

问题描述:

我有下面的代码位,简单地说:jQuery live()...必须点击两次才能激活链接?

$(function() { 
    $('a.add-photos-link').live('click', function(e) { 
    $(this).colorbox({ 
     overlayClose: false, 
     onComplete: function() { 
     $('#add_photos').submit(function(e) { 
      // more stuff to do 
      e.preventDefault(); 
     }); 
     } 
    }); 
    e.preventDefault(); 
    }); 
}); 

然而,这似乎只在链接上单点击后不愁。这些链接会动态添加到页面(a.add-photos-link)。

为什么会发生这种情况,我该如何解决这个问题,以便在第一次单击后启动?

+0

哪里是你的JavaScript所在的页面上?它是否在DOM树生成后执行? – 2010-03-14 06:45:59

您当前的代码仅为链接创建一个colorbox。它不会打开colorbox,这就是为什么你需要点击链接两次:一次创建它并再次打开它。

可以使用open选项(as documented)创建颜色框立即打开它,像这样的时候:

$(this).colorbox({ 
    open: true, 
    overlayClose: false, 
    onComplete: function() { 
    // ... 
    } 
}); 
+0

完美。感谢您为我清理! – neezer 2010-03-14 07:08:45

+0

我有类似的问题。我在页面上有一个图像,并且我为图像添加了一个onclick事件。我指定了open:true,但仍需要两次点击。 – 2013-01-18 15:46:50

+1

@MarcWilson用您的详细资料创建一个新问题。 – brianpeiris 2013-01-18 20:16:20