我正在尝试创建一个在单击列表视图中的特定链接时启动的功能。 问题是当您单击链接时似乎没有触发事件。该列表是动态创建的。我不确定这是否会导致问题。
<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>
答案 0 :(得分:6)
<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'); });
});