jQuery Mobile - 为什么绑定默认值为mobileinit?

时间:2012-07-02 22:33:08

标签: javascript jquery jquery-mobile styles

我正在使用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
  });
});

我的问题是为什么在$.mobile.ajaxEnabled = false;之后只需在配置文件中包含单行jquery-mobile.js时这样做?我认为它与Javascript的范例/风格有关,什么不是,但我真的不明白为什么你必须经历所有麻烦。

那么,哪一个更好用,为什么?为什么文档会这样推荐?

编辑: 文档还说立即调用 mobileinit ,所以我应该在配置文件中安全地修改$.mobile object吗?

1 个答案:

答案 0 :(得分:1)

我想我找到了原因。 jQuery mobile初始化自己并定义(=覆盖)$.mobile变量,而不用担心它是否已经先设置。 这解释了允许修改的mobileinit钩子。

相关问题