add ClickListener JQuery Mobile ListView



我无法将ClickListener添加到我的动态创建的ListView中。我已经尝试在Stackoverflow上关注TE,但是它不起作用

怎么了,我该如何解决?

javascript/jquery

 parseContent: function() {
    $('#countries').append('<ul data-role="listview" id="mylistview" style="margin: 50px">');       
    $.each(jsonData, function(i, item) {
        console.log(item.stad); 
        $('#countries').append('<li> <img src=' + "res/flags/" + item.flag + ' id="icon">' + '<span id="listlabel">' + item.country + '</span></li>').listview().listview('refresh');
        $('#countries').hide().fadeIn(800);   
    });
    $('#countries').append('<ul>');
    /*
    $('#mylistview').on('click', function() {
        d.lg("Works"); // id of clicked li by directly accessing DOMElement property
    });
    */
     $('#mylistview').delegate('li', 'click', function () {
      alert($(this).attr('id'));
     });
}

html

   <div data-role="page" id="one">
            <div data-role="main" class="ui-content">

                <div id="countries">
                </div>
            </div>
    </div>

listview上的jQuery Mobile click()

.delegate(...)根据jQuery文档被剥夺。

您是否尝试过:$("#countries").on("click", "li", function() {})

总是这样做:

$(document).on('pagebeforeshow', '#index', function() {
  $(document).on('click', '#mylistview li', function() {
    alert($(this).attr('id'));
  });
});

这是委派事件绑定;它不在乎该元素是否在DOM中。一旦元素在内部所述事件都将附加到它上。

工作示例:http://jsfiddle.net/8lq9fkga/

尝试这个...

 $("#mylistview").on("click", "li", function() {})

最新更新