Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Нужна кнопка рядом с фото на fancyBox. (https://javascript.ru/forum/jquery/67616-nuzhna-knopka-ryadom-s-foto-na-fancybox.html)

kuzyaka 28.02.2017 14:53

Rise,
Спасибо.
А вот когда я его использую на сайте по продаже цветов, это коммерческое использование или non-profit website projects?

kuzyaka 28.02.2017 15:12

А теперь вопрос опять по теме.
Спасибо рони, кнопку к окну с фото прилепить удалось, даже с картинкой. Только теперь возникла другая проблема.
Это кнопка должна запускать форму заказа, которая отслеживает все кнопки с class="reservation" и при нажатии на них запускается.
То, что уже работает выглядит так:
Кнопка HTML:
<a class="reservation" href="?ID=<?=$arElement["ID"]?>">
	<img src="/design/butorder.png" height="24" width="92" align="right"/>
</a>
Код сканирования такой кнопки:
$('.<?if($arParams["NAME_CLASS"]!=""):?><?=$arParams["NAME_CLASS"]?><?else:?>___<?endif?>').click(function(){
			AltasibReservation_runWindow($(this).attr('href'), $(this).attr('id'));
			return false;
		});

А у меня в fancyBox кнопка выглядит так:
$(function() {
    $(".img_over a").fancybox({
        padding: [10, 10, 35, 10],
        "afterLoad": function() {
            var button = '<img src="/design/butorderbig.png" height="31" width="117" align="left"/>';
            var add = '<a href="?ID=1500" class="reservation">' + button + '</a>';
            this.tpl.image = add + '<img class="fancybox-image" src="{href}" alt="" />'
        }
    })
});
И на неё код сканирования не реагирует. Может быть это связано с представлением кнопки не в виде HTML, а в виде script?

Rise 28.02.2017 15:18

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

kuzyaka 28.02.2017 15:22

Rise,
Спасибо, успокоили.
Жду теперь, что скажет рони на мой последний вопрос по теме.

рони 28.02.2017 17:15

Цитата:

Сообщение от kuzyaka
Код сканирования такой кнопки:

нужно делегирование изначально
примерно так
$("body").on("click", '.<?if($arParams["NAME_CLASS"]!=""):?><?=$arParams["NAME_CLASS"]?><?else:?>___<?endif?>', function(){
			AltasibReservation_runWindow($(this).attr('href'), $(this).attr('id'));
			return false;
		})


либо инициализация после создания
"afterShow": function() {
            var el = this.element;
            var id = $(el).data("id");
            var link = $(".fancybox-inner a, .fancybox-title a");
            link.click(function(event) {
*!*
                AltasibReservation_runWindow($(this).attr('href'), $(this).attr('id'));
*/!*
                event.preventDefault();
                $.fancybox.open($("#info"), {
                    "type": "inline",
                    "afterLoad": function() {
                        $("#text_tag_input").val(id)
                    },
                    "afterClose": function() {
                        $(el).trigger("click")
                    }
                })
            })
        }

kuzyaka 28.02.2017 19:18

рони, слов нет ..., Вы действительно настоящий Профессор!
А благодаря магии javascript, еще и Волшебник!

Спасибо большое, все заработало, как надо, кроме одного: окно fancyBox не возвращается после закрытия окна с формой заказа, в которой три варианта закрытия: кнопки "Х", "Отмена" и "Отправить", где после "Отправить" появляется еще одно окно с сообщением и кнопкой "Закрыть".

рони 28.02.2017 20:06

kuzyaka,
ваша форма заказа должна после закрытия кликнуть но ссылке которое содержит фото -- то есть переоткрыть строка 14 пост
$(el).trigger("click")
el можно где-то
сохранить глобально или присваивать класс , вам виднее


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