2013-03-11 71 views
0

作爲一個uni項目,我製作購物車,到目前爲止,您可以將產品添加到購物車,並且如果刷新頁面,則可以從購物車中刪除項目。Jquery,無法刪除新創建的li元素

但是,當物品被添加到購物籃時,無需先刷新瀏覽器即可從購物車中將其刪除。這是爲什麼?

這是我刪除項形式購物車功能

$('.del').on("click",function(){ 
    var id= this.id; 
    var productId = $('#productId-'+id).text(); 
    var productPrice = $('#price-'+id).text(); 
    var total = $('#total').text(); 
    var newPrice = (parseFloat(total) - parseFloat(productPrice)).toFixed(2); 
    var dataString = 'id='+ id; 
    cartSize--; 

    $('#total').html(newPrice);  
    $("#cart-"+id).slideUp('slow', function() {$(this).remove();}); 

    $.ajax({ 
     type: "POST", 
     url: "resources/del.php", 
     data: dataString, 
     cache: false, 
     success: function(html){ 
      $('#added-'+productId).fadeOut('Fast'); 
      $('#product-'+productId).delay(600).fadeIn('Fast'); 

      if(cartSize == 0){ 
       $('#noItems').fadeIn('Fast'); 
       $('#mainCart').fadeOut('Fast');  
      } 
     } 
    }); 
    return false; 

}); 

});

和我的繼承人添加到購物車功能:

 $('.addToCart').click(function(){ 
    var id = this.id; 
    var price = parseFloat($('#priceAdd-'+id).val()).toFixed(2);; 
    var name = $('#name-'+id).val(); 
    var total =(parseFloat($('#total').text())+parseFloat(price)).toFixed(2); 
    cartSize++; 

    $('#product-'+id).fadeOut('fast'); 
    $('#added-'+id).delay(500).fadeIn('fast'); 

    $.ajax({ 
     type: "POST", 
     url: 'resources/addToCart.php', 
     data: { itemId: id , name: name, price: price}, 
     cache: false, 
     success: function(html){ 
      $("ol").append(html).slideDown("slow"); 
      $('#noItems').fadeOut('fast'); 
      $('#total').html(total); 
      $('#mainCart').fadeIn('fast'); 
     } 
    }); 
}); 

任何輸入將不勝感激。

回答

2

你不想使用.live()因爲: 「在jQuery 1.7中,.live()方法已經過時了。」

你想用.on()

$('#myListItems').on("click", ".del" ,function(e) { 
    $(e.target).remove() 
}); 

jQuery's on method

3

您需要使用.on(),以便它適用於將來的元素,因爲您將與棄用.live()函數。

N.B. .on()不是簡單的.live()的別名,語法不同。

$(document).on('click', '.del', function(){...}); 

我用過的文件存在,但它是更好的,你選擇存在作爲你動態創建者的仔細父,例如一個元素

$('#basket').on('click', '.del', function(){...}); 

http://api.jquery.com/on/