【发布时间】:2012-07-03 08:41:28
【问题描述】:
我正在使用 jQuery Mobile 并且想要关闭 Ajax 处理,因为它对我的页面做了一些时髦的事情。我开始了
<script src="jquery..."></script>
<script src="jquerymobile..."></script>
Some other stuff...
My own code:
<script src="config.js"></script>
My other javascript files...
我的想法是,您在顶部定义库之类的全局内容,在底部定义细节,以便稍后渲染它们并“覆盖”全局属性。例如,我自己的 CSS 会覆盖 jQuery 的 CSS,而我的 config 文件会这样做:
$.mobile.ajaxEnabled = false;
成功禁用了 ajax 处理。
但是,http://jquerymobile.com/demos/1.1.0/docs/api/globalconfig.html 表示要覆盖配置文件中的默认值之前 jQuery mobile 是src'd,带有一些时髦的符号:(来自页面)
<script src="jquery.js"></script>
<script src="custom-scripting.js"></script>
<script src="jquery-mobile.js"></script>
//custom-scripting.js
$(document).bind("mobileinit", function(){
$.extend( $.mobile , {
foo: bar
});
});
我的问题是,当您可以在 jquery-mobile.js 之后的配置文件中简单地包含单行 $.mobile.ajaxEnabled = false; 时,为什么要这样做?我认为这与 Javascript 的范式/风格有关,但我真的不明白你为什么要经历所有这些麻烦。
那么,哪个更好用,为什么?为什么文档推荐这种方式?
编辑:
而且文档还说 mobileinit 被立即调用,所以我应该可以安全地稍后在配置文件中修改 $.mobile object 对吧?
【问题讨论】:
-
文档也有你的一半。 “或者,您可以使用对象属性表示法来设置它们。”但没有解释“mobileinit”。
-
是的,我注意到了——正如你所说,它并没有解释为什么它仍然绑定到 mobileinit
标签: javascript jquery jquery-mobile styles