我正在使用jQuery Mobile开发移动网站。我知道框架将页面放在缓存中,这样它可以在页面之间进行很好的转换,减少数据传输等等。 但在我的情况下,它很无聊,因为我认为它不会在我的页面中执行一些JavaScript。我会解释一下:
此页面显示带有日期字段的表单。当焦点在该字段上时,我使用mobiscroll来显示日期选择器。
当我提交表单时,如果出现验证错误(我使用codeigniter),服务器会重定向到表单(重新填充字段等),然后日期选择器不再起作用。如果我从JS控制台启动它,它会再次工作,这样我就会认为在返回表单页面时没有重新执行JS代码。
我添加data-ajax="false"
作为表单的属性以使其工作(我失去了漂亮的过渡,但我并不在乎)。这是最好的解决方案吗?
然后我寻找另一种方法来明确地做到这一点,因为缓存机制在其他页面中产生问题。所以我找到了:
$(document).live("mobileinit", function() {
$.mobile.ajaxLinksEnabled = false;
});
这应该完全停用缓存,但事实并非如此。我试图删除一些data-ajax="false"
然后我遇到了和以前一样的问题。
那么页面缓存机制的问题是什么?为什么$.mobile.ajaxLinksEnabled = false;
不起作用?
谢谢!
答案 0 :(得分:1)
我可以得到
$.mobile.ajaxLinksEnabled = false;
工作和我的问题最好做
$.mobile.ajaxEnabled = false;
我没有按正确的顺序加载.js文件。 (参见mobileinit事件http://jquerymobile.com/demos/1.0/docs/api/globalconfig.html)
但是我仍然想知道为什么我的脚本在每次加载页面后都没有被执行(或者是ajax导航系统的任何内容)。