我有一个使用jQuery Mobile构建的HTML5网站。
在我的index.htm页面上,我有一个ahref。当我点击该链接时,我运行一个执行tx.executeSql的函数,然后运行回调方法,然后导航到新页面。
第一次工作正常。
如果我导航到更多页面然后返回index.htm页面,则单击链接时会运行这些函数,但是tx.executeSql上的回调不会运行。
任何想法都将不胜感激。我已经使用了所有不同的机制来调用从javascript到jquery的函数,但它没有任何区别。
要清楚 - 调用的第一个函数是setFeaturedRecruiter() - 您可以看到下面的代码。我第二次回到这里“renderResults”回调函数没有运行。
// when we click on the actual featured recruiter link we copy from this table to the featured recruiter table to overwrite its contents
function setFeaturedRecruiter() {
alert('setFeaturedRecruiter()');
retrieveActualFeaturedRecruiter();
return true;
}
function retrieveActualFeaturedRecruiter() {
alert('retrieveActualFeaturedRecruiter()');
db.transaction(function (tx) {
alert('select * from featuredRecruiterActual...');
tx.executeSql('SELECT * FROM featuredRecruiterActual', [], renderResults, pnetOnError);
});
}
pnetOnError = function (tx, e) {
alert('Something unexpected happened: ' + e.message);
}
function renderResults(tx, rs) {
alert('renderResults()');
var idNo;
var name;
var logo;
var totalAds;
for (var i = 0; i < rs.rows.length; i++) {
r = rs.rows.item(i);
idNo = r.idNo * 1;
name = r.name;
logo = r.logo;
totalAds = r.totalAds;
}
writeToFeaturedRecruiter(idNo, name, logo, totalAds);
}
答案 0 :(得分:2)
我通过在页面之间导航时禁用ajax解决了这个问题。这是通过添加到ahref标签来完成的:data-ajax =“false”。这导致页面正确加载并克服了问题。