0

我正在尝试创建一个在您单击列表视图中的特定链接时启动的函数。问题是当您单击链接时,该事件似乎没有触发。该列表是动态创建的。我不确定这是否会导致问题。

    <label for="listviewForLastTenCalls">Last Ten Calls:</label>
    <ul data-role="listview" id="listviewForLastTenCalls">
    </ul>
<script>
   $('#listviewForLastTenCalls li').click(function(){
        //alert('click event handler fired');
</script>
4

6 回答 6

6

演示

<ul data-role="listview" id="listviewForLastTenCalls">
  <!-- items dynamically generated -->
</ul>

JS

$(document).on('click', '#listviewForLastTenCalls li a', function () {
 // code
});
于 2013-06-25T15:27:49.863 回答
1

问题是您在创建列表后添加了点击侦听器。当您第一次创建侦听器时,它没有什么可以听的。您需要在添加后添加点击事件<li>

于 2013-06-25T15:27:16.103 回答
1
$('#listviewForLastTenCalls li a').click( function () {
 // code
});
于 2013-06-25T15:40:12.233 回答
0

我希望这不是您的完整标记,...

  <label for="listviewForLastTenCalls">Last Ten Calls:</label>
    <ul data-role="listview" id="listviewForLastTenCalls">
    </ul>

<script>
   $('#listviewForLastTenCalls li').click(function(){
        //alert('click event handler fired');
   }); //<--
</script>

如果列表是动态创建的,则必须在创建列表后附加事件......

于 2013-06-25T15:28:03.983 回答
0

您必须为动态添加的元素进行事件委托。

    $('"#listviewForLastTenCalls"').on("click",'li' ,function(){
       alert('triggered');
    });

为什么 on() 有效?

事件处理程序仅绑定到当前选定的元素;当您的代码调用 .on() 时,它们必须存在于页面上。

于 2013-06-25T15:28:20.597 回答
-1

像这样的东西:

$(function() {
   $("#listviewForLastTenCalls li").on('click', function() { alert('clicked');  });
});
于 2013-06-25T15:27:07.110 回答