Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перезагрузка скрипта javascript / 11 сообщений из 11, страница 1 из 1
16.05.2014, 13:56
    #38643453
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Проблема вот в чем.

На страничке товаров интернет магазина есть javascript плагин fancybox. Он нужен для быстрого зума фотографий товара.

Работает отлично, пока я не вставил ajax переключение фотографий по цветам. Тоесть выбираем цвет и в окне фотографий должны поменяться фотографии нужного цвета. Но после первого выбора fancybox слетает. Тоесть фотки подгрузились, но уже показываются тупо без плагина. Вместо fancybox пробовал cloud-zoom. Точно так же все происходит.

Мне кажется, что нужно как-то перезагрузить сам плагин для работы уже с новыми картинками. но как это сделать? Возможно ли перезагрузить отдельный скрипт на странице при помощи ajax?

Пробовал отправлять строку подключения скрипта, не помогло:
Код: php
1.
<script src="<?=SITE_TEMPLATE_PATH?>/js/common/fancybox/jquery.fancybox.pack.js"></script>



Спасибо!
...
Рейтинг: 0 / 0
16.05.2014, 14:27
    #38643506
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
код инициализации fancybox покажите
...
Рейтинг: 0 / 0
16.05.2014, 16:49
    #38643740
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
SharuPoNemnoguкод инициализации fancybox покажите

Это в хэдере страницы:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
		<link rel="stylesheet" href="<?=SITE_TEMPLATE_PATH?>/js/common/fancybox/jquery.fancybox.css"/>
		<script src="<?=SITE_TEMPLATE_PATH?>/js/common/fancybox/jquery.fancybox.pack.js"></script>
		<script type="text/javascript">
		    $(document).ready(function() {
		        $(".fancybox").fancybox({
		            helpers: {
		                overlay: {
		                    locked: false
		                }
		            }
		        });
		    });
		</script>



Вот сам блок с картинками:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        <div id="photo_item_cart" class="left-column">

            <div class="big-picture">
                <a class="fancybox" rel="group" href="<?=$img['src']?>"><img id="big_photo" src="<?=$img['src']?>" alt=""/></a>
            </div>
            <div class="small-pictures">
            	<?foreach($arResult['MORE_PHOTO'] as $arPhoto):?>
                <a href="<?=$arPhoto['SRC']?>"><img id="small_photo_<??>" src="<?=$arPhoto['SRC']?>" width="50" alt=""/></a>
                <?endforeach?>
            </div>

        </div>



Вот картинка: http://joxi.ru/wgh2U_3JTJBtWHKa_Gw

Проблема в том, что после аякс загрузки нижние маленькие картинки тупо открываются в новой странице, а должны в окошке фотографии, тоесть в блоке "big-picture"
...
Рейтинг: 0 / 0
16.05.2014, 18:08
    #38643833
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Cryptic,

Всё правильно. Ведь $("bla-bla-bla") возвращает объект с массивом элементов страницы уже существующих на момент вызова. Потому, у fancybox нету шансов отловить что либо на новых картинках, так как он об этих картинках ничего не знает. Для работы для новых картинок стоит выполнять переинициализацию... ну то есть повторно вызывать $(".fancybox").fancybox({bla-bla-bla}) . При этом плагин переподключать или делать что либо подобное не надо...
...
Рейтинг: 0 / 0
16.05.2014, 19:11
    #38643888
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Я пробовал этот код кидать в ajax запрос - не помогает. Как заставить скрипт заного заработать без перезагрузки страницы?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script type="text/javascript">
		    $(document).ready(function() {
		        $(".fancybox").fancybox({
		            helpers: {
		                overlay: {
		                    locked: false
		                }
		            }
		        });
		    });
		</script>
...
Рейтинг: 0 / 0
16.05.2014, 20:41
    #38643918
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
CrypticЯ пробовал этот код кидать в ajax запрос - не помогает. Как заставить скрипт заного заработать без перезагрузки страницы?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script type="text/javascript">
		    $(document).ready(function() {
		        $(".fancybox").fancybox({
		            helpers: {
		                overlay: {
		                    locked: false
		                }
		            }
		        });
		    });
		</script>



Этот - это какой?
...
Рейтинг: 0 / 0
16.05.2014, 20:45
    #38643921
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Програмёр
Этот - это какой?

Который я опубликовал в предыдущем сообщении. Инициализация fancybox
...
Рейтинг: 0 / 0
16.05.2014, 20:53
    #38643925
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Вот код ajax сообщения:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function setOfferColor(id){ 
	$.ajax({
		  url: "/ajax/item_cart.php",
		  type: "POST",
		  data: {
					COLOR_ID:id,
				},
		  success: function(data){
			$("div#photo_item_cart").html(data);		
		  } 
	});	
}



Подскажите, что тут нужно написать, чтобы фансибокс перезагрузился для новой data в div#photo_item_cart?
...
Рейтинг: 0 / 0
16.05.2014, 23:55
    #38643982
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Cryptic,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
success: function(data){
    $("div#photo_item_cart").html(data);		
		  
    $(".fancybox").fancybox({
		            helpers: {
		                overlay: {
		                    locked: false
		                }
		            }
		        });
} 
...
Рейтинг: 0 / 0
17.05.2014, 09:46
    #38644065
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
SharuPoNemnogu,

Я писал выше, что пробовал точно так же. Сейчас прям отсюда скопировал. Не - работает :(
...
Рейтинг: 0 / 0
17.05.2014, 10:29
    #38644078
Cryptic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перезагрузка скрипта javascript
Ребят, спасибо большое! Нашел решение.
Рылся в джаваскриптах и нашел такой вот код подмены содержимого из блока small-pictures в big-pictures. Именно его, а не fancybox надо было в ajax сообщение поместить. А фанси бокс и так свою функцию модального окна выполнял. Я почему-то глупо посчитал, что это все один плагин делает. Но нет.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
	success: function(data){
			$("div#photo_item_cart").html(data);
			    $('.small-pictures a').click(function(e) {
			        e.preventDefault();
			        var big_photo = $('#big_photo');

			        big_photo.attr('src', $(this).attr('href'));
			        big_photo.parent().attr('href', $(this).attr('href'));

			    });

		  }
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перезагрузка скрипта javascript / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]