Jquery mobile 拆分listview次按钮单击动态添加行上的事件

Jquery mobile 拆分listview次按钮单击动态添加行上的事件,jquery-mobile,jquery-mobile-listview,Jquery Mobile,Jquery Mobile Listview,我正在使用jQm将行添加到拆分列表视图中,并且我只能获取触发单击事件的第一行(不是动态添加的)。我假设我需要调用某个刷新函数,但我不知道是什么-我已经在刷新listview,我希望能够解决它 这是小提琴: 下面是代码: <ul data-role="listview" data-split-icon="minus" id="list"> <li> <a href="#">Item Description</a>

我正在使用jQm将行添加到拆分列表视图中,并且我只能获取触发单击事件的第一行(不是动态添加的)。我假设我需要调用某个刷新函数,但我不知道是什么-我已经在刷新listview,我希望能够解决它

这是小提琴:

下面是代码:

<ul data-role="listview" data-split-icon="minus" id="list">
    <li>
        <a href="#">Item Description</a>
        <a href="#" class="delbtn">remove</a>
    </li>
</ul>
<a href="#" id="addbtn" class="ui-btn">Add item</a>
JS:

var itemcount=1;
$('#addbtn')。单击(函数(){
var addstr='
  • '; $('#list')。追加(addstr); $('#list').listview(); $('#list')。列表视图('refresh'); itemcount++; }); $(“#列出a.ui-li-link-alt”)。在(“单击”,函数()上{ 警报(“delbtn已单击”); });

    我缺少什么?

    因为您正在动态添加DOM元素,所以无法提前绑定。而是使用事件委派():

    这表示将click事件绑定到列表中具有delbtn类的任何项目,即使它们还不存在

    更新


    $(文档)。在(“click”、“.delbtn”上,函数()
    ,而不是
    $('.delbtn')。在处理动态元素时,单击(函数(){
    )。这称为事件委派,它必须简单-谢谢!
    var itemcount=1;
    
    $('#addbtn').click(function() {
       var addstr = '<li><a href="#">Item Description '+itemcount+'</a><a href="#" id="delbtn-'+itemcount+'" class="delbtn">remove</a></li></ul>';
        $('#list').append(addstr);
        $('#list').listview();
        $('#list').listview('refresh');
        itemcount++;
    });
    
    $('#list a.ui-li-link-alt').on("click",function() {
       alert('delbtn clicked'); 
    });
    
    $('#list').on("click", ".delbtn", function() {
       alert('delbtn clicked'); 
    });