我已经使用此函数来检索列表视图内容的xml:
function xmlParser(data) {
xml = data;
$('#load').fadeOut();
$(xml).find("item").each(function () {
var title = $(this).find("title").text();
var description = $(this).find("description").text();
$("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share('+"'description'"+')">share!</button></li>');
});
$('#list').listview('refresh');
}
在内容之后,显示按钮共享,但是当我点击时,它会显示&#39; description&#39;而不是变量的内容(文本)。 我想我的报价&#39;和&#34;是错位的,但我无法解决它。 一些帮助将被贬低。
答案 0 :(得分:2)
问题是因为变量名称周围的引号导致它被解释为字符串文字。您需要更改语法:
$("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share(\''+ description + '\')">share!</button></li>');
更好的做法是将description
放在data
属性中,并使用不引人注目的JS而不是过时的click
事件属性挂钩on*
事件处理程序:
function xmlParser(data) {
xml = data;
$('#load').fadeOut();
$(xml).find("item").each(function () {
var title = $(this).find("title").text();
var description = $(this).find("description").text();
$("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button data-description="' + description + '">share!</button></li>');
});
$('#list').listview('refresh');
}
$('#list').on('click', 'li button', function() {
window.plugins.socialsharing.share($(this).data('description'));
});
答案 1 :(得分:-2)
$("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share("' + description + '")">share!</button></li>');
});
$('#list').listview('refresh');
}
尝试这个。
我只更新了这一行。
$("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share("' + description + '")">share!</button></li>');