FancyBox и ajax

Люди добрые подскажите про FancyBox если кто пользовался. Есть еледующая потребность: на странице несколько линок , на кождую подгружается своя галерея FancyBox - renderPartial с вью в котором инициализируется виджет FancyBox. В результате когда загружается первая галерея - все работает, когда все поледующие - галерея загружается но при клиrе на самой картинке происходит ошибка js: u is undefined.

Как уделать?

Подгружать скрипты отдельно.

может нужно использовать live?

про подгрузку я и live я сообразил. но этим не лечится. в пресловутой строке 790 самого фенсу исправил bind на live - не работает, не работает именно галерея с привьюшками. не удается повесить событие на эту разметку. уж очень хочется

Может скрипты грузятся два раза?

вот кусок основного вью


<div class='goods_address'>

	<?php echo 'фотогалерея';?>

	<span class='manage_button left_buttom'>

	<?php

	echo CHtml::ajaxLink(  

			'<img width=20 height=20 src=images/buttons/more.gif>',

			CHtml::normalizeUrl(array('goods/ajaxgallery','id'=>'2')),

			array ('replace' => '#_ayax_gallery_5')

			

			);

	?>

	</span>

</div>

<div id='_ayax_gallery_5'></div>


<div class='goods_address'>

	<?php echo 'фотогалерея';?>

	<span class='manage_button left_buttom'>

	<?php

	echo CHtml::ajaxLink(  

			'<img width=20 height=20 src=images/buttons/more.gif>',

			CHtml::normalizeUrl(array('goods/ajaxgallery','id'=>'1')),

			array ('replace' => '#_ayax_gallery_6')

			

			);

	?>

	</span>

</div>

<div id='_ayax_gallery_6'></div>

вот вью того файла который возвращает аяксный запрос




<?php

	$this->widget('application.extensions.fancybox.EFancyBox', array(

		'target'=>'a[rel=item_'.$currentid.']',

		'config'=>array(

			'transitionIn'=>'elastic',

			'transitionOut'=>'elastic',

			'titlePosition'=>'outside'

			

		),

		'test'=>$currentid,

		)

	);

	

	echo $currentid;

	

	echo CHtmlNv::openRoundWrap($sufclass='r'); 

	

	foreach ($oimage_map as $item) {

		if (!empty($item))

		echo CHtml::link(  

			CHtml::image($item, $item, array (

				'width'=>110,

				'height'=>80,

				'style'=>'margin: 5px; border: 10px solid white;',

				)),

			$item,

			array ( 

				'class'=>'single_image', 

				'rel'=>'item_'.$currentid,

				'title'=>'the title'.$currentid,

			));

	}

	

	echo CHtmlNv::closeRoundWrap($sufclass='r');

	

?>




тоесть есть две линки по каждой из которых загружается галерея превьюшек. первая загруженая галерея работает. втрая нет. кто подскажет?

ТС, будь другом, отпишись если разобрался

Лишний раз jquery подключается, обнуляются все data у узлов. Так что fancybox не помнит о настройках. Выход либо fancybox выносить в вызывающую вьюху, а уже при аякс ответить показывать его либо писать свой транспорт под jq(второе в разы сложнее).

Тоже подключал fancybox в схожей с ТС ситуации. У скрипта фэнси бокса jquery.fancybox-1.3.4.pack.js поменял


....

bind("click.fb",function(c){c.preventDefault();

....

на


....

live("click.fb",function(c){c.preventDefault();

....

и все заработало. Не забыть только про то что в assets старая версия остаются, если не публикуется новая, и еще processOutput для аяксового контента.

Если я правильно помню, то для вновь загруженных картинок достаточно вызвать метод fancybox() с теми же параметрами. Это можно сделать в обработчике события по завершении ajax запроса. Ну и подгружать jQuery ещё раз тоже не нужно.