Показать сообщение отдельно
  #1 (permalink)  
Старый 02.03.2015, 19:01
Новичок на форуме
Отправить личное сообщение для Cutter Посмотреть профиль Найти все сообщения от Cutter
 
Регистрация: 02.03.2015
Сообщений: 5

FancyBox потомок закрывает родителя. Как остановить?
Доброго времени суток всем!

Собственно, сабж.
На сайте при клике на ссылку вида

<a class="fancybox" href="vyveski?ajax=1">Вывески</a>


во всплывающем окне аяксом загружается страница. На ней ссылка вида

<a class="ngg-fancybox fancybox2" rel="a8d4d19c6389e219203d095f7ebf7721" title=" " href="standart-2-1.jpg"><img width="240" height="160" src="standart-2-1.jpg-nggid011-ngg0dyn-240x160x100-00f0w010c011r110f110r010t010.jpg" alt="standart-2.jpg" title="standart-2.jpg"></img></a>


Проблема в том, что мне нужно, что-бы окно родитель после клика осталось открытым. А оно закрывается.

На исходной странице fancybox инициализируется так:

jQuery(function(){

jQuery.fn.getTitle = function() { // Copy the title of every IMG tag and add it to its parent A so that fancybox can show titles
	var arr = jQuery("a.fancybox");
	jQuery.each(arr, function() {
		var title = jQuery(this).children("img").attr("title");
		jQuery(this).attr('title',title);
	})
}

// Supported file extensions
var thumbnails = jQuery("a:has(img)").not(".nolightbox").filter( function() { return /\.(jpe?g|png|gif|bmp)$/i.test(jQuery(this).attr('href')) });

thumbnails.addClass("fancybox").getTitle();
jQuery("a.fancybox").fancybox({
	'cyclic': false,
	'autoScale': true,
	'padding': 30,
	'opacity': true,
	'speedIn': 500,
	'speedOut': 500,
	'changeSpeed': 300,
	'overlayShow': true,
	'overlayOpacity': "0.3",
	'overlayColor': "#666666",
	'titleShow': true,
	'titlePosition': 'inside',
	'enableEscapeButton': true,
	'showCloseButton': true,
	'showNavArrows': true,
	'hideOnOverlayClick': true,
	'hideOnContentClick': false,
	'width': 560,
	'height': 340,
	'transitionIn': "fade",
	'transitionOut': "fade",
	'centerOnScroll': true
});

jQuery().fancybox({
'type': 'ajax'
});

})


На странице загружаемой аяксом:
jQuery(function(){

jQuery("a.fancybox2").fancybox({
	'cyclic': true,
	'autoScale': true,
	'padding': 30,
	'opacity': true,
	'speedIn': 500,
	'speedOut': 500,
	'changeSpeed': 300,
	'overlayShow': true,
	'overlayOpacity': "0.3",
	'overlayColor': "#666666",
	'titleShow': true,
	'titlePosition': 'inside',
	'enableEscapeButton': true,
	'showCloseButton': true,
	'showNavArrows': true,
	'hideOnOverlayClick': true,
	'hideOnContentClick': false,
	'width': 560,
	'height': 340,
	'transitionIn': "fade",
	'transitionOut': "fade",
        'onStart': function() {
	            window.last = this.element;
	        },
	'onClosed': function() {
	            setTimeout( function() {
	                jQuery(window.last).trigger('click')
	            }, 300); 
	        },
	'centerOnScroll': true,
});
})


Собственно, 'onClosed' и 'onStart' в последней инициализации, это попытка решить проблему, как додумался.

В JavaScript совершенно не разбираюсь, просто очень нужно сделать, причем ещё вчера.

Просьба ткнуть носом, в чем я не прав и где почитать как надо? Гугл молчит. Или я его не так спрашиваю.
Ответить с цитированием