Events jquerymobile1.4.2在DOM操作后没有触发Click事件&;页面刷新

Events jquerymobile1.4.2在DOM操作后没有触发Click事件&;页面刷新,events,jquery-mobile,dom,Events,Jquery Mobile,Dom,我正在尝试使用单页移动站点。基本上,我在容器中有一个listview,并为list类单击事件 <div role="main" class="ui-content"> <ul data-role="listview" data-inset="true"> <li class="listbtn"> <a href="url"></a> </li> </ul><!-- /li

我正在尝试使用单页移动站点。基本上,我在容器中有一个listview,并为list类单击事件

<div role="main" class="ui-content">
  <ul data-role="listview" data-inset="true">
    <li class="listbtn">
      <a href="url"></a>
    </li>
  </ul><!-- /listview -->
</div><!-- /content -->
当第一次加载页面时,这可以正常工作

在另一个事件中,我提取数据并用新项替换整个“listview”

DOM操作成功后,我使用了

$('.ui-page-active .ui-listview').listview('refresh');
$.mobile.activePage.trigger('create');
正如在其他线程上建议的那样

到目前为止,一切都是顺利的,页面刷新与新项目和CSS应用良好的预期

唯一的问题是“listbtn”点击事件在此之后并没有触发

在寻找答案的过程中,我发现并尝试按照建议使用live,但更改为live后,页面根本无法加载。加载gif图像会永远旋转

有什么建议或想法吗

jquery2.0 jQM 1.4.2

谢谢

您需要将事件委托给动态添加的元素

另外,您不需要
$.mobile.activePage.trigger('create')
.listview(“刷新”)
足以重新增强列表视图。更不用说,
$.mobile.activePage
以及
.trigger('create')
都已弃用,并将在jQM 1.5上删除

$(document).on("click", ".listbtn", function () {
  /* code */
});


将侦听器包装在
pagecreate
事件中。@奥马尔:我刚刚将“document.ready”替换为on(“pagecreate”,function(),但行为与以前完全相同。我没有注意到
.listbrn
是动态创建的。您需要委托事件
$(document)。on(“click”,“.listbrn”,function(){code})是的……没错。每次都很好用!谢谢奥马尔
$(document).on("click", ".listbtn", function () {
  /* code */
});