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

时间:2010-03-14 06:20:54

标签: 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.preventDefault();
        });
      }
    });
    e.preventDefault();
  });
});

然而,这似乎只在单击链接TWICE后起作用。这些链接会动态添加到页面(a.add-photos-link)。

为什么会发生这种情况,我该怎么做才能修复它,以便在第一次单击后触发?

1 个答案:

答案 0 :(得分:7)

您当前的代码仅为链接创建颜色框。它不会打开颜色框,这就是您需要单击链接两次的原因:一次创建它并再次打开它。

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

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