2013-06-27 42 views
0

我在一個對象中有兩種方法。第一個'Basket.add('clothing-item-name')',我可以放在onclick中。當用戶點擊時,它將該服裝項目從參數「名稱」添加到籃子中的對應位置。調用Javascript對象的方法進入點擊HTML - JS/Jquery

如何使用Basket.items()在Basket.add中創建的+1函數顯示添加的項目?

我試過.append();和.text();到我想讓物品每次增加1的div。我還寫了一個單獨的函數,它只更新了籃子總數,但沒有包含上面的方法。

HTML的按鈕

<button type="button" value="1" onclick="Basket.add('clothing-item-name')" id="add">ADD TO BASKET</button> 

HTML - itinery(部分)

<li class="tShirt1"><a href="#">T-shirt 1 <span class="amount"> </span></a></li> 

JS對象

var Basket = (function() { 

var _items = {}; 

return { 
add: function (name) { 
    if (_items.hasOwnProperty(name)) { 
    _items[name] = _items[name] + 1; 
    } else { 
    _items[name] = 1; 
    } 
}, 

items: function() { 
    return clone(_items); 

    function clone(obj) { 
    var target = {}; 
    for (var i in obj) { 
     if (obj.hasOwnProperty(i)) { 
     target[i] = obj[i]; 
     } 
    } 
    return target; 
    } 
    } 
}; 
}()); 

回答

0

我還不能肯定我明白你想要什麼在這裏做。每次添加新項目時是否只是更新span.amount?如果是的話,你基本上可以做類似呼籲某種「setItems」功能,只要你添加/刪除:

var Basket = (function() { 

    var _items = {}; 

    return { 
     add: function (name) { 
      if (_items.hasOwnProperty(name)) { 
       _items[name] = _items[name] + 1; 
      } else { 
       _items[name] = 1; 
      } 

      this.setItems(name); 
     }, 

     items: function() { 
      return clone(_items); 

      function clone(obj) { 
       var target = {}; 
       for (var i in obj) { 
        if (obj.hasOwnProperty(i)) { 
         target[i] = obj[i]; 
        } 
       } 
       return target; 
      } 
     }, 
     setItems: function (name) { 
      $(".amount").text(_items[name]); 
     } 
    }; 
}()); 

You can check it out on this jsfiddle.