我已经使用 jQuery Mobile 创建了一个动态列表视图,我想获取单击列表项的值。我想要实现这一点的原因是因为我需要这个值来链接到另一个页面并显示有关单击项目的更多详细信息。
我已经在互联网上搜索过,我发现了一个对我不起作用的解决方案。
我的(jQuery Mobile)页面如下所示:
<div data-role="page" id="personList">
<div data-role="header" data-position="fixed">
<h1>header</h1>
</div>
<div data-role="content">
</div>
<div data-role="footer" data-position="fixed">
footer
</div>
</div>
我将项目动态添加到列表视图的函数如下所示:
(我使用 HTML5 SQL Web 存储将数据本地存储在设备上)
function showPersons()
{
db.transaction (function (transaction)
{
//get data from table
var sql = "SELECT * FROM person";
transaction.executeSql (sql, undefined,
//loop through sql result and add results to html variable
function (transaction, result)
{
var html = "<ul id=" + "personListview" + "data-role=" + "listview" +" data-filter=" + "true" + ">";
if (result.rows.length) //if there is something found
{
for (var i = 0; i < result.rows.length; i++)
{
var row = result.rows.item (i);
var voorNaam = row.voorNaam;
var achterNaam = row.achterNaam;
var email = row.email;
html += "<li data-theme='e'" + "data-name='test value'>" + "<a href='#'>" + "<h3>" + voorNaam + " " + achterNaam + "</h3><p>" + email + "</p></a></li>";
}
}
else //if there is nothing found
{
html += "<li> No persons found </li>";
}
html += "</ul>";
//Change page
$("#personList").unbind ().bind ("pagebeforeshow", function ()
{
var $content = $("#personList div:jqmData(role=content)");
$content.html (html);
var $ul = $content.find ("ul");
$ul.listview ();
});
$.mobile.changePage ($("#personList"));
}, error);});}
如您所见,我在“li”标签中添加了“data-name='test value'”,所以我应该使用以下函数获取该值:
$('#personListview').children('li').click(function() {
alert($(this).attr('data-name')); });
但是,最后一个功能不起作用。当我单击“li”项目时,什么也没有发生。我希望我收到一个值为“数据名称”的警报)。
PS。即使我声明了这一点,我也没有收到警报:
$('#personListview').children('li').click(function() {
alert('test');
有人可以帮助我吗?我是 Javascript 和 jQuery(mobile) 的初学者。
提前致谢!