Перейти к содержимому


Фото
- - - - -

Обновление jquery до 3.3.1 , проблема с корзиной


  • Чтобы отвечать, сперва войдите на форум
2 ответов в теме

#1 Kami

Kami
  • Пользователь
  • 390 сообщений
  • Откуда:Россия

Опубликовано 28.02.2019 - 18:21

Друзья, обновил библиотеку jquery до 3.3.1

 

и соответственно ajax_cart.js начал ругаться на live метод

 

$('form.variants').on('submit', function(e) {
    e.preventDefault();
    button = $(this).find('input[type="submit"]');
    if ($(this).find('input[name=variant]:checked').size() > 0) variant = $(this).find('input[name=variant]:checked').val();
    if ($(this).find('select[name=variant]').size() > 0) variant = $(this).find('select').val();
    $.ajax({
        url: "ajax/cart.php",
        data: {
            variant: variant,
            amount: $(this).find('input[name="amount"]').val()
        },
        dataType: 'json',
        success: function(data) {
            $('#cart_informer').html(data);
            if (button.attr('data-result-text')) button.val(button.attr('data-result-text'));
        }
    });
    var o1 = $(this).offset();
    var o2 = $('#cart_informer').offset();
    var dx = o1.left - o2.left;
    var dy = o1.top - o2.top;
    var distance = Math.sqrt(dx * dx + dy * dy);
    $(this).closest('.product').find('.image img').effect("transfer", {
        to: $("#cart_informer"),
        className: "transfer_class"
    }, distance);
    $('.transfer_class').html($(this).closest('.product').find('.image').html());
    $('.transfer_class').find('img').css('height', '100%');
    return false;
}); 

 

Собственно внесены изменения, но при добавлении товара происходит редирект в корзину.

подскажите что при обновлении мог упустить?

 

 Скрипты подключены и работают нормально, избранное и сравнение тоже реализованные ajax работают без проблем.

 

в верстке

<form class="variants" action="/cart">
<select name="variant"> 
<option value="3798" price="360">коричневый</option> 
<option value="3799" price="370">зеленый</option> 
 </select>

<input class="amount" type="text" name="amount" value="" maxlength="2">
<span class="price">360</span>
<input type="submit" value="В корзину" data-result-text="Добавить еще">
</form>


 

ajax/cart.php  не правился.



#2 filth

filth
  • Пользователь
  • 348 сообщений
  • Пользователь

Опубликовано 26.02.2020 - 13:24


// Аяксовая корзина
$(document).ready(function() {
	
$('form.variants').on('submit', function(e) {e.preventDefault();
button=$(this).find('input[type="submit"]');
if($(this).find('select[name=variant]').length>0)
	variant=$(this).find('select').val();
if($(this).find('input[name=variant]:checked').length>0)
	variant=$(this).find('input[name=variant]:checked').val();

$.ajax({
	url:"ajax/cart.php",
	data:{variant:variant},
	dataType:'json',
	success:function(data){$('.cart_informer').html(data);
if(button.attr('data-result-text'))button.val(button.attr('data-result-text'));
}});
var o1 = $(this).offset();
	var o2 = $('.cart_informer').offset();
	var dx = o1.left - o2.left;
	var dy = o1.top - o2.top;
	var distance = Math.sqrt(dx * dx + dy * dy);
	$(this).closest('.product').find('.image img').effect("transfer", { to: $(".cart_informer"), className: "transfer_class" }, distance);	
	$('.transfer_class').html($(this).closest('.product').find('.image').html());
	$('.transfer_class').find('img').css('height', '100%');
	return false;		
});

});

 



#3 yr4ik

yr4ik
  • Фрилансер
  • 933 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 27.02.2020 - 05:09

Правильней будет так:

$(document).on('submit', 'form.variants', function(e) {

А еще правильней - если найдете какую то более ограниченную зону где должно работать ajax добавление в корзину:

$('#main-content').on('submit', 'form.variants', function(e) {





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых