Кнопка "Продолжить покупки", во всплывающем окне

  • 6 Ответов
  • 3251 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн dynamit

  • *******
  • 1745
  • [+]264 / [-]0
  • Winter Is Coming
    • Просмотр профиля
Многих пользователей раздражает поведение кнопки "Продолжить покупки" во всплывающем окне 2-го VirtueMart. внятного решения я не увидел, хотя тема у нас вроде есть. Многие хотят что бы пользователь оставался на той же странице где и была нажата кнопка купить.
решение
components/com_virtuemart/views/cart/tmpl/padded.php 23 стр.
echo '<a class="continue" href="' . $this->continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
убираем адрес ссылки
echo '<a class="continue" href="#">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
и над этой строкой вставляем скрипт закрывающий окно
?>
<script>
jQuery(document).ready(function() {
jQuery('a.continue').click(function() { jQuery(document).trigger('close.facebox') });
});
</script>
<?php

 
« Последнее редактирование: 08.02.2014, 13:27:09 от dynamit »
==================================================
  ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5

*

Оффлайн fsv

Есть где посмотреть? Просто предполагаю, что или окно дернется, или js не сработает, т.к. пойдет по href.
Возможно, надо или href="#" вообще из <a> убрать, или
Код: (javascript) [Выделить]
jQuery(document).ready(function() {
  jQuery('a.continue').click(function(event) {
    event.preventDefault();
    jQuery(document).trigger('close.facebox') });
});
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

Оффлайн dynamit

  • *******
  • 1745
  • [+]264 / [-]0
  • Winter Is Coming
    • Просмотр профиля
тогда проще убрать ее вообще и событие вызывать на span, к примеру.
?>
<script>
jQuery(document).ready(function() {
jQuery('.continue').click(function() { jQuery(document).trigger('close.facebox') });
});
</script>
<?php
echo '<span class="continue">' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</span>';
==================================================
  ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5

*

Оффлайн gartes

Я это переделывал с помощью Dialog-a в JqueryUI,
Событие там есть  сработает после открытия диалога
  open: function( event, ui ) {  }  Ну и можно в скобки какой нить тайм - аут вставить!!
Или что бы к примеру в верх потихоньку полезло...
Но из за того что тайминги в браузерах по разному работают и анимация тоже то
Абсолютным решением тоже не является!

Хотя на мой взгляд диалог  UI намного приятней работает чем facebox
Можно даже секунды показывать до закрытия диалогового окна!
Либо закрываем через 5 секунд либо жмет и переходит в корзину!
В общем так где то ::)

Позвольте добавлю еще одно решение.
После долгих поисков сделал решение для себя, возможно кому-то еще пригодится.

Последний VirtueMart 2 рекомендует использовать FancyBox вместо FaceBox'a. Соответственно, хоть и незначительно, но меняется код для его закрытия.

Меня не устраивал переход по ссылке href="#", т.к. в таком случае страница листалась на самый верх, хотелсь просто закрытия окошка и все, поэтому я решил ссылки заменить кнопками и повесить на событие onClick кнопки "Продолжить покупки" функцию закрытия FancyBox. А ссылку на корзину просто завернул в кнопку. Получается красиво и функционально, кнопки заметнее и их вид можно настроить с помощью CSS.

Заменяем исходный код:
echo '<a class="continue" href="' . $this->continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';

echo '<a class="showcart floatright" href="' . $this->cart_link . '">' . JText::_('COM_VIRTUEMART_CART_SHOW'). '</a>';

На следующий:
echo '<div class="popbox"><button onclick="jQuery.fancybox.close()">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</button>';
echo '<a class="showcart floatright" href="' . $this->cart_link . '"><button style="background-color: #99cc00;">' . JText::_('COM_VIRTUEMART_CART_SHOW'). '</button></a></div>';

Я завернул это все в div и прописал стиль для popbox в CSS шаблона. Кнопка "Показать корзину" отличается по цвету, чтобы покупателю было легче ориентироваться.

Либо можно сделать все без этих излишеств и просто сделать кнопки. Тогда копируем этот код:
echo '<button onclick="jQuery.fancybox.close()">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</button>';
echo '<a class="showcart floatright" href="' . $this->cart_link . '"><button>' . JText::_('COM_VIRTUEMART_CART_SHOW'). '</button></a>';

Кстати, на мой взгляд, удобнее, когда кнопки ниже текста "Товар добавлен в корзину", поэтому я переместил этот кусок кода вниз и вставил НАД строкой:
?><br style="clear:both">

Можно сделать это еще проще:

Заменяем исходный код:
echo '<a class="continue" href="' . $this->continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
На следующий:
echo '<a class="continue" href="javascript:void(0)" onclick="jQuery.fancybox.close()" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
href="javascript:void(0)" — задает “пустую” ссылку.

*

Оффлайн WooSuuP

  • ****
  • 234
  • [+]11 / [-]1
  • Ословед Интерсвязи
    • Просмотр профиля
    • ЮМИ - Ресторан доставки Японской кухни
Я юзаю display:none;
Нет кнопки нет проблем =)
Хочу тИЦ на сайте 16000 и Google PR 6