gab*_*m10 3 javascript mobile jquery html5 jquery-mobile
我看起来高低,似乎无法在任何地方找到它.有谁知道如何在列表视图中获取行的值?这可以是从对象中的名称到索引的任何内容.现在我有一个处理水龙头的功能.我需要能够将值传递给我在转换时加载的新页面.我以为我可以在这里做到:
$('#taskListTable').delegate('li', 'tap', function () {
console.log('clicked');
//Insert code here to pull a value from either an index or a name and save it
});
Run Code Online (Sandbox Code Playgroud)
我想也许在哈希中这样做会很好吗?我不确定来自本地iOS开发的网络标准做法是什么.任何人有任何指针?谢谢.
这就是我填充listview的方式:
$.each(tasks, function(index, task) {
$taskList.append("<li><a href='taskDetails.html'> <h3>"+task.name+"</h3><p>"+task.description+"</p></a></li>");
});
Run Code Online (Sandbox Code Playgroud)
taskDetails.html需要任务的索引,以便我可以从服务器中提取详细信息.这样做的标准做法是什么?
要获取taped list-item 的索引,您可以执行以下操作:
$('#taskListTable').delegate('li', 'tap', function () {
console.log('clicked');
var index = $(this).index();
});
Run Code Online (Sandbox Code Playgroud)
是的,就是这样.虽然这假设该<li>元素都是兄弟姐妹.
文档.index():http://api.jquery.com/index
如果您想转换到新页面:
$('#taskListTable').delegate('li', 'tap', function () {
console.log('clicked');
$.mobile.changePage($(this).find('a').attr('href'), {
data : { selectedIndex : $(this).index() }
});
});
Run Code Online (Sandbox Code Playgroud)
这将获取新页面并将selectedIndex变量作为查询字符串参数附加,该参数设置为tapped list-item 的索引.
另外,为了能够阻止单击list-item中链接的默认行为,我会将此事件处理程序附加到链接元素:
$('#taskListTable').delegate('a', 'tap', function (event) {
event.preventDefault();
console.log('link clicked');
$.mobile.changePage($(this).attr('href'), {
data : { selectedIndex : $(this).closest('li').index() }
});
});
Run Code Online (Sandbox Code Playgroud)