这是一个常见的 jQuery Mobile 问题。
您不应该使用 jQM 准备好的文档,而是 jQM 提供页面事件。您的问题是文档准备好谁可以,并且通常在页面加载到 DOM 之前触发。这就是为什么刷新有帮助,此时页面已经加载。
我给你做了一个工作示例:http: //jsfiddle.net/Gajotres/8hKe2/
$(document).on('pagebeforeshow', '#foo', function(){
alert('This is foo');
});
$(document).on('pagebeforeshow', '#bar', function(){
alert('This is bar');
});
基本上每个页面事件都会触发仅适用于该页面的 javascript 代码。如果您希望代码只执行一次,则应使用 pageinit 事件而不是 pagebeforeshow,如下所示:
$(document).on('pageinit', '#foo', function(){
alert('This is foo');
});
$(document).on('pageinit', '#bar', function(){
alert('This is bar');
});
如果您想了解更多信息,请查看我的其他文章/答案:https ://stackoverflow.com/a/14469041/1848600