2012-05-21 2 views
0

У меня проблема с fancybox. Мой продукт открывается в fancybox, и у меня есть связанные продукты с содержимым. Я хотел бы закрыть fancybox, когда пользователь нажимает на связанную ссылку и открывает продукт в новом fancybox.Открыть Fancybox от Fancybox и закрыть родителя

Спасибо, ребята, за вашу помощь. Но она не работает :(. Открывает продукт в окне без FancyBox.

$(document).ready(function() { 
$("a#fancy1").fancybox({ 
     'speedIn'   : 600, 
     'speedOut'   : 200, 
     'overlayShow'  : false, 
     'autoDimensions' : false, 
     'width'    : 620, 
     'height'   : 'auto', 
     'overlayShow'  : true, 
     'overlayOpacity' : 0.8, 
     'overlayColor'  : '#ccc' 
}); 
$("a#fancy2").fancybox({ 
     'speedIn'   : 600, 
     'speedOut'   : 200, 
     'overlayShow'  : false, 
     'autoDimensions' : false, 
     'width'    : 620, 
     'height'   : 'auto', 
     'overlayShow'  : true, 
     'overlayOpacity' : 0.8, 
     'overlayColor'  : '#ccc' 
}); 
}); 

Это то, что у меня есть. При нажатии на продукт открывает FancyBox «fancy1». Но Щелчок в FancyBox ссылке открывается соответствующий продукт без фантазии и I 'получаю:

($ не определен $ (функция() {$ (' # form_2538') проверки();.});)

Связывание с продуктом сделано таким образом

!
<a id="fancy1" href="product_url" > 

Linking предшествующему сделано таким образом

<a id="fancy2" href="product_url" > 

я боролся с этим на некоторое время :(

И я РЕШИЛ ЕГО !!!!!!!!!!!!! !!!!!!

Я разрешил вопрос !!

См. Ниже!

$(document).ready(function() { 

$("a.fancy1").live("hover", 
     function() 
     {$("a.fancy1").fancybox({ 
     'speedIn'   : 600, 
     'speedOut'   : 200, 
     'overlayShow'  : false, 
     'autoDimensions' : false, 
     'width'    : 620, 
     'height'   : 'auto', 
     'overlayShow'  : true, 
     'overlayOpacity' : 0.8, 
     'overlayColor'  : '#ccc' 

     }); 
     }); 
    }); 
+0

Эта ошибка '($ не определена $ (function() {$ ('# form_2538'). Validate();});)', похоже, не имеет отношения к fancybox и может быть также повреждена скрипт fancybox , Проверьте настройки скрипта проверки. – JFK

ответ

0

Вы должны связать FancyBox для каждого звена в отдельности, как

$("a#fancy1").fancybox({ 
// options 
}); 
$("a#fancy2").fancybox({ 
// options 
}); 

Обратите внимание, что второй сценарий не внутри первого (onClosed вариант).

Откройте первый FancyBox как:

<a id="fancy1" href="{link to product}">open product</a> 

Затем в открывшемся содержания вы должны иметь ссылку как

<a id="fancy2" href="{target to related product}">see related product</a> 

вы на самом деле нет, чтобы закрыть первый FancyBox, связывая к второй изнутри его закроет.

+0

, как вы можете видеть в приведенном выше примере, я следовал твоему предложению и до сих пор не получил никакого результата. Грустный. –

+0

Спасибо, JFK. Ваше решение вроде сработало.Мне пришлось использовать $ («a # fancy1»). Fancybox ({ // опции }); $ ("a # fancy1"). Fancybox ({ // опции }); ДВАЖДЫ! Но! Открытие продукта с помощью fancybox и нажатие на соответствующий продукт внутри него работает только один раз. Если я открываю связанный продукт, который также получил связанные продукты, он не работает. –

+0

Не работает дважды, потому что это http://fancybox.net/faq (No.7) – JFK

0
<a href="product_url" id="fancy2">Link</a> 

<script> 
$('#fancy2').click(function() 
{ 
    $(this).parent().fancybox.close(); 
}); 
</script> 

ИЛИ

<script> 
$('#fancy2').click(function() 
{ 
    $('a#fancy1').trigger('click'); 
}); 
</script> 
+0

Я немного новичок в js. Не понял! Где я могу это выразить? Вот так: ? –

+0

Ну, вам нужно пропустить код в $ (document) .ready (function() {/ * place place herer * /}); –

+0

, и я думаю, вам нужно сделать это для каждой ссылки? $ ('a'). Each (function() { $ (this) .fancybox ({ // опции }); }); –

Смежные вопросы