2012-03-06 56 views
3

我无法解决我的问题。所以我在jQuery mobile中有一个listview,它是动态创建的。点击列表项目时,我不想链接到外部页面,而只想抓住他们点击的项目的文本。jQuery Mobile列表视图:点击时更改值

就我而言,它的名称列表,我想知道他们点击了哪一个。我在HTML中创建了以下列表:

<div data-role="content" data-theme="b"> 

     <div id="friends_list_view" class="content-primary" data-theme="c"> 
      <ul data-role="listview" data-filter="true" data-theme="c"> 
      </ul> 
     </div> 
    </div> 

当单击一个项目时,我想使用它们选择的名称来运行某个函数。我怎样才能做到这一点?

var listString = null; 
for(i in session_library){ 
     listString = '<li><a href="#">'+session_library[i]['name']+'</a></li>'; 
     $("#friends_list_view ul").append(listString); 

} 

$("#friends_list_view ul").listview('refresh'); 

回答

8

假设你的ListView看起来就像这样:

<ul data-role="listview" data-filter="true" data-theme="c" id="my_listview"> 
     <li>Row A</li> 
     <li>Row B</li> 
</ul> 

你可以注册一个单击事件处理程序,这将给你的<li>背课文

,然后动态地以后更新它,例如

$('#my_listview').delegate('li', 'click', function() { 
    alert(this.innerText); 
});  
​ 

编辑:改变vclickclick。请参阅documentation

+0

简单易行。谢谢! – JoshDG 2012-03-06 21:49:54

+0

请小心'vclick'。在一些操作系统(主要是Android <3.0)中,它会触发两个点击事件,如果点击事件导航或更改点击区域周围的内容,则第二次点击实际上可以触发不同的元素。 'click'在它触发之前有一个延迟,但这是设计的,所以设备可以决定用户是轻敲,轻按还是轻扫。 – Jasper 2012-03-06 22:07:42

+0

啊,好的,谢谢。请参阅此文档:http://jquerymobile.com/test/docs/api/events.html。我还没有看到'click'与'vclick'的警告。 – Ryan 2012-03-06 22:37:51

相关问题