从数组向列表视图添加和删除项目

时间:2019-06-02 15:01:30

标签: javascript jquery arrays listview

我希望从数组中添加和删除项目到列表视图中,这与购物车类似,但是我正在使用列表视图来做到这一点。

我尝试使用append(),但是它将双重添加项目,并且删除功能不起作用

$('#deleteme').on('tap', function () {

    console.log('delete button is tapped')
    $(this).parent().remove();
    $('#cartlist').listview('refresh');});

  $("#Addtocart").click(function () {
    console.log("addtocart button is tapped");

    var add = "";
    var title = arr[gindex].title;
    var price = arr[gindex].price;

    var Oprice = arr[gindex].Oprice;
    var img = arr[gindex].imgSmall;
    var Expiry = arr[gindex].Expiry;

    add = add + "<li><a class='ui-icon-delete' id='deteleme'>
     <img src=img/"
     + img + "><h3>" + title + "</h3><p><b>" + price + '</b><br>'
     + '<strike>' + Oprice + '</strike>' + '<br>' + "Expiry: " + Expiry 
     + "</p></a></li>";

    $('#cartlist').append(add);
    console.log("item is added");

    $('#cartlist').listview('refresh');
    console.log(add);});

我希望一个接一个地添加项目,我可以删除我想要的任何项目

1 个答案:

答案 0 :(得分:0)

您动态添加ID为deleteme的li,并附加了点击处理程序,但该项目不存在。因此,您需要使用委托

$('body').on('tap','#deleteme', function () {
...
})

最好使用最接近的deleteme父级而不是$('body')以获得更好的性能