Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   функция внутри Live() срабатывает после второго клика (https://javascript.ru/forum/jquery/20548-funkciya-vnutri-live-srabatyvaet-posle-vtorogo-klika.html)

Ad1r 09.08.2011 12:25

функция внутри Live() срабатывает после второго клика
 
День добрый!

Появилась необходимость использовать плагин fancybox у подгруженных аяксом элементов.

Пишу следующий код
$('.get_request').live('click',	function () {
	$(this).fancybox({
		'width'				: '75%',
		'height'			: '75%',
	    'autoScale'     	: false,
	    'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'ajax',
		'hideOnOverlayClick': false 
	})
	return false;
});


<a href="/by/ajax/" class="get_request">Показать окно</a>


Проблема заключается в том, что окно появляется только после второго нажатия на элемент с классом get_request. А нужно чтобы сразу после первого нажатия срабатывало, подскажите как решить эту проблему?

walik 09.08.2011 13:16

Так без события клик делается:
$('.get_request').fancybox({
        'width'             : '75%',
        'height'            : '75%',
        'autoScale'         : false,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none',
        'type'              : 'ajax',
        'hideOnOverlayClick': false
    });

Ad1r 09.08.2011 13:25

Цитата:

Сообщение от walik (Сообщение 119151)
Так без события клик делается:...

Тогда как быть с контентом который подгружается динамически?
При первой загрузке страницы такой скрипт подходит, но стоит перегрузить контент (ajax) как все ссылки с классом get_request перестают вызывать fancybox окно.

devote 09.08.2011 13:27

дык назначь заного так как указал walik

Ad1r 09.08.2011 13:37

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

devote 09.08.2011 13:39

ну после того как подгрузишь новые теги и т.д. потом конечно же после того как поместишь их в DOM вызови этот код.

walik 09.08.2011 13:51

Типа такого:
$.ajax({
   url: 'url.php',
   success: function(data) {
      $('body').append(data);
      $('.get_request').fancybox({ //... и т.д.
   }
});

Ad1r 09.08.2011 14:11

решение нашел тут: http://code.google.com/p/fancybox/issues/detail?id=18
47 комментарий


Часовой пояс GMT +3, время: 08:33.