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

jQuery live()。。。必须点击两次才能激活链接?,jquery,click,live,Jquery,Click,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.p

我有以下代码,很简单:

$(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


为什么会发生这种情况?我可以做些什么来修复它,使它在第一次单击后触发?

您当前的代码只为链接创建一个颜色框。它不会打开颜色框,这就是为什么您需要单击链接两次:一次创建它,另一次打开它

创建颜色框时,您可以使用
打开
选项()立即打开它,如下所示:

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

您的JavaScript在页面上的什么位置?它是在构建DOM树之后执行的吗?我有一个类似的问题。我在一个页面上有一个图像,我在图像中添加了一个onclick事件。我指定了open:true,但它仍然需要两次单击。@MarcWilson用您的详细信息创建一个新问题。我发现它-jQuery发布了一个新版本,其中删除了“live”函数-有一个新版本的colorbox与最新的jQuery一起使用。3年后,这个答案仍然可以节省人们的时间。