我正在使用XML数据生成带有listViews的动态可折叠集。它生成正确,但我需要一个点击/触摸事件来显示一些数据,然后再转到另一个页面。这是我的代码:
$("#dvAccordion").empty();
var outdiv = $('<div data-role="collapsible-set"></div>');
$(strXML).find('Category').each(function(){
var colldiv = $('<div data-role="collapsible" data-collapsed="true"></div>');
colldiv.append('<h3>' + $(this).find('Category_Name').text() + '</h3>');
var uldiv = $('<ul data-role="listview" data-inset="false"></ul>');
colldiv.append(uldiv);
//
$(this).find('Menu_Item').each(function(){
var sItemName = $(this).find('item_name').text() ;
uldiv.append('<li data-name="baby"><a href="menu.html" rel="external">' + sItemName + '</a></li>');
});
//
//$('#dvAccordion').listview('refresh');
//
outdiv.append(colldiv);
outdiv.appendTo('#dvAccordion');
});
//$('#dvAccordion [data-role=collapsible-set]').collapsibleset();
//$('#dvAccordion').collapsibleset();
//$('#dvAccordion').collapsibleset('refresh');
$('#dvAccordion').trigger('create');
我在页面加载时添加了一个eventListener,如下所示:
$('#dvAccordion ul').children('li').bind('vclick', function(e) {
alert('Selected Name=' + $(this).attr('data-name'));
});
这个绑定代码可以正常工作,如果它是一个静态可折叠的HTML集。它会在转移到'menu.html'之前显示警告。但对于我的动态设置,它会在没有任何警报的情况下移至'menu.html'。请帮忙。
答案 0 :(得分:1)
首先调用函数generateDynamicAccordion();
。
DEMO http://jsfiddle.net/yeyene/MvcHm/9/
generateDynamicAccordion();
$('#dvDynamic_selectId ul').children('li').bind('vclick', function(e) {
var sId = $(this).attr('data-id');
alert('Selected id=' + sId);
});
//
$('#dvStatic_selectId ul').children('li').bind('vclick', function(e) {
var sId = $(this).attr('data-id');
alert('Selected id=' + sId);
});