2015-06-12 3 views
1

Когда пользователь опустошает корзину, он удаляет все предметы и перезагружает страницу. Страница перезагрузится, чтобы сбросить кнопки, которые активированы (все кнопки с классом .button возвращаются к исходному состоянию). Должен быть способ сбросить кнопки, не перезагружая страницу. Вместо функции брикетирования location.reload есть функция, которая может сбросить все флаги «99cents.png»Сбросить переменную Флаг в исходное состояние

<script> 
$(".button").on('click', function(){ 
    var flag = $(this).data('flag'); 

    simpleCart.add({ 
     name  : $(this).attr("data-product-id"), 
     price : .99, 
     quantity : (flag ? -1 : 1) 
    }); 

    $(this).attr("src", flag ? "99cents.png" : "m99cents.png"); 

    $(this).data('flag', !flag); 
}); 
function reloadFunction() { 
location.reload(); 
} 
</script> 
+0

Что вы подразумеваете под кнопками «активированные» .... вы добавляете класс или что-то еще для активации buttong –

+0

Hello Arun P Johny, каждая кнопка - это изображение «99cents.png», когда пользователь нажимает изображение, которое он меняет на «m99cents.png» и добавляет товар в корзину. Когда пользователь снова нажимает кнопку, он переключается на «99cents.png» и удаляет элемент из корзины. Когда тележка опустела, она выполняет функцию reloadFunction(). Я хотел бы, чтобы функция сбросила флаг до «99centbeats.png»/его orignal state вместо location.reload – Jeff

+0

Вы рассматривали использование AJAX? – hzq

ответ

0

магазина в исходном состоянии в данном также. Когда вызывается reloadFunction, вы можете получить состояние из этого свойства и заменить исходный атрибут.

В HTML:

<img class="button" src="originalsrc.png" /> 

В JavaScript:

$(function(){ 
    $(".button").each(function(i,el) 
        { 
         var el = $(this); 
         el.data('flag-original', el.attr('src')); 
        }); 
}); 

function reloadFunction() { 
    $(".button").each(function() 
        { 
         var el = $(this); 
         el.text(el.data('flag-original')); 
        }); 
} 
0

После некоторых исследований на JQuery я обнаружил там был метод, который я мог бы использовать назвал .removeData(); с этим я был в состоянии достичь желаемую задачу, добавив в пустую тележку класс с именем «.empty». Вот что я придумал, что работает:

$(".empty").on('click', function(){ 

    $(".button").attr("src", "99cents.png"); 

    $(".button").removeData(); 
}); 

.removeData() был в состоянии очистить все без необходимости обновлять страницу!

Спасибо!

Смежные вопросы