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

nee*_*zer 6 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();
  });
});
Run Code Online (Sandbox Code Playgroud)

但是,这只在单击TWICE链接后似乎有效.这些链接会动态添加到页面(a.add-photos-link)中.

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

bri*_*ris 7

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

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

$(this).colorbox({
  open: true,
  overlayClose: false,
  onComplete: function() {
    // ...
  }
});
Run Code Online (Sandbox Code Playgroud)