将变量标记重置为原始状态

时间:2015-06-12 01:23:34

标签: javascript jquery html flags

当用户清空购物车时,它会删除所有商品并重新加载页面。页面将重新加载以重置激活的按钮(具有.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>

2 个答案:

答案 0 :(得分:0)

也将原始状态存储在数据中。调用reloadFunction时,可以从此属性检索状态并替换source属性。

在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'));
                    });
}

答案 1 :(得分:0)

在对jquery进行一些研究之后,我发现有一种方法可以使用.removeData();,我可以通过向空购物车按钮添加一个名为“.empty”的类来实现所需的任务。以下是我提出的有效方法:

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

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

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

.removeData()能够清除所有内容而无需刷新页面!

谢谢!