3

这个例子并没有确切地显示问题,只是为了有一个想法。比如我点击第2页时,div中没有​​加载内容,我必须刷新页面才能看到第2页的内容。

PS:相同的代码在其他页面中重复。

代码 :

$(document).ready(function() {
    $('.content-primary').html("Content of page 1"); // This line just in this example
    //$(".content-primary").load("content-of-page.php"); // but I used this code on all my pages 
});
4

1 回答 1

3

这是一个常见的 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

于 2013-04-05T14:47:16.430 回答