如何在jQuery listview中为特定链接创建click事件。

时间:2013-06-25 15:24:10

标签: javascript jquery html jquery-mobile

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

    <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>

6 个答案:

答案 0 :(得分:6)

  

Demo

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

<强> JS

$(document).on('click', '#listviewForLastTenCalls li a', function () {
 // code
});

答案 1 :(得分:1)

问题是您在创建列表后添加了单击侦听器。当您第一次创建侦听器时,没有任何内容可供侦听。添加<li>

后,您需要添加点击事件

答案 2 :(得分:1)

$('#listviewForLastTenCalls li a').click( function () {
 // code
});

答案 3 :(得分: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 :(得分:0)

您必须为动态添加的元素执行event delegation

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

为什么on()有效?

  

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

答案 5 :(得分:-1)

这样的事情:

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