добавить ClickListener JQuery Mobile ListView - PullRequest
0 голосов
/ 20 марта 2019

Я не могу добавить clickListener в мой динамически создаваемый listView.Я попытался выполнить следующее в stackoverflow, но оно не работает

Что не так и как мне это решить?

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>

jquery mobile click () при просмотре списка

Ответы [ 3 ]

0 голосов
/ 20 марта 2019

.delegate(...) удален в соответствии с документацией JQuery.

Вы пробовали: $("#countries").on("click", "li", function() {})

0 голосов
/ 20 марта 2019

попробуйте это ...

 $("#mylistview").on("click", "li", function() {})
0 голосов
/ 20 марта 2019

Всегда делай так:

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

Это делегированная привязка события; это не волнует, находится ли элемент в DOM или нет. Как только элемент окажется внутри, к нему будет прикреплено указанное событие.

Рабочий пример: http://jsfiddle.net/8Lq9fkga/

...