jQuery live () ... дважды щелкнуть, чтобы активировать ссылки? - PullRequest
6 голосов
/ 14 марта 2010

У меня есть следующий бит кода, просто:

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

Почему это происходит и что я могу сделать, чтобы исправить это, чтобы он срабатывал после первого щелчка мышью?

1 Ответ

7 голосов
/ 14 марта 2010

Ваш текущий код создает только цветовую коробку для ссылки. Он не открывает цветовое окно, поэтому вам нужно дважды щелкнуть ссылку: один раз, чтобы создать ее, и еще раз, чтобы открыть ее.

Вы можете использовать опцию open ( как описано ) при создании палитры, чтобы открыть ее немедленно, например:

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