我正在开发一个多页 JQM 应用程序。在我的一个页面中,我引入了两个 RSS 提要并使用 jFeed 插件显示它们。
我想做的是在列表视图中捕获单击事件,获取 href 并将其交给 Phonegap/Cordova ChildBrowser 插件,以便它显示在子浏览器中。
我正在努力从点击事件中获取href。我不知道这是上下文或优先级问题,还是我遗漏的非常简单的问题。
在我包含的 app.js 文件中:
$("#chooseEvent").live('pageinit', function(event) {
$.getFeed({
url: "https://www1.ucsc.edu/news_events/calendar/rss/Today.ashx",
complete: function(feed) {
//called when complete
//alert('complete');
},
success: function(feed) {
//called when successful
//alert('success' + feed.title);
$("#content ul").append('<li data-role="divider" data-theme="b">' + feed.title + '</li>');
for (var i = 0; i < feed.items.length && i < 10; i++) {
var item = feed.items[i];
$("#content ul").append('<li><a href="' + item.link + +"rel=external" + '">' + item.title + '</a></li>');
}
// run refresh on the listview to get the theme added correctly
$('#content ul').listview('refresh');
},
error: function(feed) {
//called when there is an error
//alert('error');
}
// get the item clicked and prepare it for Child Browser
$("#content ul").on('click', function(e) {
//var url = this.href; // outputs #
// var url = e.target; // outputs #
var url = $(this).attr("href"); // result is undefined
//var url = this.parent; // result in undefined
alert(url);
e.preventDefault();
});
});
html页面
<div data-role="page" data-title="Campus Events" id="chooseEvent" addBackBtn="true">
<div data-role="header" data-add-back-btn="true">
<a href="index.html" rel="external" data-icon="arrow-l" data-direction="reverse" class="ui-btn-left" data-theme="b">Back</a>
<h3>Today's Events</h3>
<a href="index.html" data-rel="back" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right" data-theme="b">Home</a>
</div>
<div data-role="content" id="content">
<ul data-role="listview" id="eventList" data-theme="b">
</ul>
</div> <!-- /content -->
</div> <!-- /page -->