0

大家好,点击按钮我需要将对象添加到数组,然后将数组写入 cookie。从一开始这个数组就不能为空,所以我先解析cookie。

function addToBasket(){
        var basket = $.parseJSON($.cookie("basket"))

        if (basket.length==0||!basket){
            var basket=[];
            basket.push(
                { 'number' : this.getAttribute('number'),
                    'type' : this.getAttribute('product') }
            );
        }
        else{
            basket.push(
                { 'number' : this.getAttribute('number'),
                    'type' : this.getAttribute('product') }
            );
        }
        $.cookie("basket", JSON.stringify(basket));
    }

和 HTML

<button type="button" class="btn btn-success btn-lg" number="12" product="accs" onclick="addToBasket()">Add</button>

不幸的是,我得到了 Uncaught ReferenceError: addToBasket is not defined onclick。不明白我做错了什么?谢谢!

4

1 回答 1

2

我大大简化了您的代码,这是一个小提琴:http: //jsfiddle.net/yJ6gp/

我使用 jQuery 连接了 click 事件并简化了一些代码(见评论)。请注意,我稍微更改了您的 html,因此我可以按类选择添加篮子按钮 - 根据需要进行更改。

$(function () {//doc ready
    $.cookie.json = true; //Turn on automatic storage of JSON objects passed as the cookie value. Assumes JSON.stringify and JSON.parse:
    $('.add-basket').click(function() {
        var basket = $.cookie("basket") || []; //if not defined use an empty array
        var $this = $(this);

        basket.push({
            'number': $this.attr('number'),
            'type': $this.attr('product')
        });
        console.log(basket);
        $.cookie("basket", basket);
    });
});
于 2013-11-11T21:51:16.967 回答