Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Открытие и закрытие корзины


Recommended Posts

Здравствуйте.

Вопрос состоит вот в чем, во всех стандартных темах можно открыть корзину при нажатии стрелки, но не сворачивается при повторном нажатии, закрывается она только при отведении курсора от корзины.

В принципе, можно сделать при наведении/отведении курсора открытие/закрытие корзины.

 

в файле catalog/view/javascript/common.js найти строчку

$('#cart > .heading a').bind('click', function() {

click заменить на mouseenter 

 

 

Но хотелось бы сделать открытие/закрытие при нажатии, а не нажатии и отведении.

Надіслати
Поділитися на інших сайтах


Плохо знаю .js, если заменить код

$('#cart > .heading a').bind('click', function() {$('#cart').addClass('active');$.ajax({url: 'index.php?route=checkout/cart/update',dataType: 'json',success: function(json) {if (json['output']) {$('#cart .content').html(json['output']);}}});$('#cart').bind('mouseleave', function() {$(this).removeClass('active');});});

на вот этот:

$('#cart > .heading a').bind('click', function() {$('#cart').addClass('active');$.ajax({url: 'index.php?route=checkout/cart/update',dataType: 'json',success: function(json) {if (json['output']) {$('#cart .content').html(json['output']);}}});$('#cart').bind('click', function() {$(this).removeClass('active');});});

Поможет ли?

Надіслати
Поділитися на інших сайтах


Надіслати
Поділитися на інших сайтах

$('#cart > .heading a').bind('click', function() {

if ($('#cart').hasClass('active') {

//закрываем

$('#cart').removeClass('active')

} else {

//открываем

$('#cart').addClass('active')

}

  • +1 1
Надіслати
Поділитися на інших сайтах

Чукча, вы пропустили 

$.ajax({
url: 'index.php?route=checkout/cart/update',
dataType: 'json',
success: function(json) {
if (json['output']) {
$('#cart .content').html(json['output']);
}
}
});

А так - да, ваш вариант тоже будет работать. Могу ещё два предложить :) 

  • +1 1
Надіслати
Поділитися на інших сайтах

Через .bind, почему-то глючило. Были ошибки, в скобках, убрал. Проверьте, кто разбирается, пожалуйста. Сделал вот так:
Открывается/закрывается при нажатии и скрывается при отведении указателя 

$('#cart > .heading a').live('click', function() {
if ($('#cart').hasClass('active')) {
//закрываем
$('#cart').removeClass('active');
} else {
//открываем
$('#cart').addClass('active');
}

$('#cart').load('index.php?route=module/cart #cart > *');

$('#cart').live('mouseleave', function() {
$(this).removeClass('active');
});
});

Я ставил модуль вот этот, поэтому может немного отличаться. Код не common.js, а в f_i_common.js

Надіслати
Поділитися на інших сайтах


Попробуйте вот так:

$('#cart > .heading a').live('click', function() {
if ($('#cart').hasClass('active')) {
//закрываем
$('#cart').removeClass('active');
} else {
//открываем
$('#cart').load('index.php?route=module/cart #cart > *');
$('#cart').addClass('active');
}

$('#cart').live('mouseleave', function() {
$(this).removeClass('active');
});
});
  • +1 1
Надіслати
Поділитися на інших сайтах

Я написал bind, потому что в пример был bind

Сейчас я использую on - так рекомендуют jquery

 

As of jQuery 1.7, the .live() method is deprecated.

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.