listview上的jquery mobile click()

listview上的jquery mobile click(),jquery,listview,mobile,click,Jquery,Listview,Mobile,Click,我对jquery mobile中的listview有问题。我想使用JSON从服务器加载一些数据,并用这些项填充您的listview。那很好。但是,当我试图对点击一个新加载的项目做出反应时,我不会得到这个事件!我想我必须以某种方式刷新视图,有点不知道如何 我在墙上画了一个小草图 当你点击“单击我”按钮时,项目上的单击事件不再被跟踪。如何获取新项目的“Wokrs”警报 非常感谢你的阅读 试试看 $('#listview').on('click', 'li', function() {

我对jquery mobile中的listview有问题。我想使用JSON从服务器加载一些数据,并用这些项填充您的listview。那很好。但是,当我试图对点击一个新加载的项目做出反应时,我不会得到这个事件!我想我必须以某种方式刷新视图,有点不知道如何

我在墙上画了一个小草图

当你点击“单击我”按钮时,项目上的单击事件不再被跟踪。如何获取新项目的“Wokrs”警报

非常感谢你的阅读

试试看

    $('#listview').on('click', 'li', function() {
        alert("Works"); // id of clicked li by directly accessing DOMElement property
    });
使用
jQuery>1.7

$('#listview li').live('click', function() {
    alert("Works"); // id of clicked li by directly accessing DOMElement property
});
使用jQuery版本1.6.4

你为什么需要这个
因为。重新加载页面后,您将在
listview
中添加
li
,因此那些
li
s的任何事件都应该
live
(对于您使用的jQuery版本)或
delegate
(jQuery>1.7)。

如果您的JQM版本旧了(比如我的-JQM 1.2.0), 这两种方法都不适合你

试试这个:

     <ul data-role="listview" id="myList">
       <li id="1" >text</li>
     </ul>

     //on the js code use delegate
     $('#myList').delegate('li', 'click', function () {
         alert($(this).attr('id'));
     });
    文本
//在js代码上使用委托 $('#myList')。委托('li','click',函数(){ 警报($(this.attr('id')); });
到远程数据源和liswiew

用div包装ul元素

<div data-role="page" id="myPage">
  <form id="myform" class="ui-filterable">
    <input id="what" data-type="search" placeholder="i.e.Carpentry...">
    <div id="w_what">
      <ul id="ul_what" data-role="listview" data-inset="true" data-filter="true" data input="#what">
      </ul>
     </div>
   </form>
 </div>

$( "#ul_what" ).on( "filterablebeforefilter", function ( e, data ) {
    var $ul = $( this ),
    $input = $( data.input ),
    value = $input.val(),
    html = "";
    $ul.html( "" );       // initially null 
    $('#w_what').show();  // For next search
    if ( value && value.length > 0 ) {
        $ul.html( "<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>" );
        $ul.listview( "refresh" );
        $.ajax({
            url: "/php/getWhat.php", // Ajax url
            dataType: "json",        // json 
            data: {
                q: $input.val()      // which value to be searched
            }
        })
        .then( function ( response ) {
            $.each( response, function ( id, val ) {
                html += "<li>" + val.text + "</li>";  // json response has text element
            });
            $ul.html( html );
            $ul.listview( "refresh" );
            $ul.trigger( "updatelayout");
        });
    }
});

$('#ul_what').delegate('li', 'click', function () {
    var ul = $(this);          // when clicked
    $('#what').val(ul.text()); // set the value for input       
    $('#w_what').hide();       // hide the div 

 });

$(“ul#u what”)。关于(“FilterableBeforFilter”,函数(e,数据){ var$ul=$(此), $input=$(data.input), value=$input.val(), html=“”; $ul.html(“”;//最初为空 $('w#u what').show();//用于下一次搜索 如果(value&&value.length>0){ $ul.html(“
  • ”); $ul.列表视图(“刷新”); $.ajax({ url:“/php/getWhat.php”//Ajax url 数据类型:“json”,//json 数据:{ q:$input.val()//要搜索哪个值 } }) .然后(功能(响应){ $。每个(响应、函数(id、val){ html+=“
  • ”+val.text+“
  • ”;//json响应包含文本元素 }); $ul.html(html); $ul.列表视图(“刷新”); $ul.trigger(“updatelayout”); }); } }); $('ul#u what')。委托('li','click',函数(){ var ul=$(this);//单击时 $('#what').val(ul.text());//设置输入值 $('w#u what').hide();//隐藏div });

    希望对你有所帮助。非常感谢!啊,好的,我明白了。新的基于脚本的编程。我就是这么想的!再次感谢你!解决了的!