我有一个listview,它动态填充了我正在开发的商店定位器的优惠。 listview完美地填充了带有商品标题和商品描述的格式化列表。
我正在尝试创建一个已保存的功能,用户可以保存要约以供离线使用。为此,我将数据库值传输到动态列表视图的属性中,我可以将它们放入变量中以便在sessions / localstorage等中使用。
这是我的js代码,它定义了属性并显示了listview。
var output1 = '';
function getoffers(data) {
var data = JSON.parse(data);
console.log(data);
$.each(data, function(index, value){
output1 += '<li offertitle='+value.offer_title+' offer-desc='+value.offer_desc+' offer-expiry='+value.expiry_date+'><a href="#""><h1>'+value.offer_title+'</h1><p>'+value.offer_desc+'</p><p class="ui-li-aside"><b>Expiry Date:</b>'+value.expiry_date+'</p></a></li>';
});
$('#offerlist').html(output1).listview().listview('refresh');
}
如您所见,我显示数据库值和将它们分配给动态列表视图行中的属性。
我在点击列表视图行时创建变量,我在其中提醒每个变量进行测试。这是我发现变量只有第一个单词(应该是一个段落)的地方。
EG。应该说&#34;买一送一,#34;。只返回&#34;购买&#34;在变量中。
$("#offers ul").on("click", ">li", function(event, ui) {
var offertitle = $(this).closest('li').attr('offertitle');
var offerdesc = $(this).closest('li').attr('offer-desc');
var offerexpiry = $(this).closest('li').attr('offer-expiry');
alert(offertitle);
alert(offerdesc);
alert(offerexpiry);
});
答案 0 :(得分:2)
您没有引用该属性,因此只将第一个单词视为其中的一部分。
您需要将其设置为:
output1 += '<li offertitle="'+value.offer_title+'" offer-desc="'+value.offer_desc+'" offer-expiry="'+value.expiry_date+'"><a href="#""><h1>'+value.offer_title+'</h1><p>'+value.offer_desc+'</p><p class="ui-li-aside"><b>Expiry Date:</b>'+value.expiry_date+'</p></a></li>';
顺便说一句,您不应该定义自己的自定义属性,而是使用HTML data attributes。