2010-12-05 1 views
0

Учитывая эту ссылку в рамках FancyBox:Проблемы с FancyBox в модальном режиме

<a class="fancyBox" href="http://localhost/ccms/index.cfm?do=user.update" id="userLink">Update</a> 

Если я нажимаю эту ссылку физически, окно FancyBox модального всплывает и отображает содержимое страницы обновления пользователя. Окно находится в модальном режиме, и единственный способ закрыть окно - через Close/X. Щелчок вне модаля ничего не делает. Все идет нормально.

Однако, если я пытаюсь вызвать окно, как это:

$("#userLink").fancybox().trigger('click'); 

Страница обновления пользователя выскакивает в модальном по мере необходимости, но при нажатии вне модального теперь вызывает событие закрытия и закрытия окна ,

Любые идеи, почему это происходит ???

В конечном счете, я хотел бы, чтобы поведение модала было последовательным. Но если для этого решения не найдено, возможно, нет возможности переопределить событие click, заставляя модальное закрывать и отключать его?

Спасибо, кто-нибудь?

ответ

2

Необходимо указать модальное поведение, когда вы вызываете fancybox(). Вероятно, вы переписываете настройки, которые вы указали другим способом, когда вы называете это таким образом. Поэтому для того, чтобы сохранить свои настройки, выполните следующие действия:

$("#userLink").fancybox({modal:true}).trigger('click'); 

Но я бы порекомендовал вам попробовать: $("#userLink").click();, который будет инициировать событие щелчка и использовать существующие настройки.

+0

Великий ответ sholsinger - спасибо! Второй подход, который вы рекомендовали, отлично работал. Первый, однако, удаляет функциональность закрытия «X» из модального. Я подозреваю, что для включения этого параметра должен быть еще один параметр? – Cheeky 2010-12-07 13:31:33

0

Вы можете также использовать FancyBox API

  1. hideOnContentClick: ложные
  2. hideOnOverlayClick: ложные

Надеется, что это поможет

0

Просто добавьте родитель: "форму: первый" в .fancybox ({}); функция.

пример:

$(".various").fancybox({ 
       maxWidth: 800, 
       maxHeight: 600, 
       fitToView: false, 
       width: '50%', 
       height: '50%', 
       autoSize: false, 
       closeClick: false, 
       openEffect: 'none', 
       closeEffect: 'none', 
       parent: "form:first" 
      });