将'options'覆盖传递给jquery函数

时间:2012-02-08 03:27:11

标签: jquery jquery-mobile

我正在使用jquery.mobile-1.0.1。

我在点击ui-listview中的当前“标签”时尝试重新加载页面:

enter image description here

我已设法跟踪该功能并更改jquery.mobile-1.0.1.js中的源代码以修复此问题,但我想知道是否有办法在不修改jquery的情况下执行此操作移动源

有问题的功能是:

$.mobile.loadPage = function( url, options ) {      
settings = $.extend( {}, $.mobile.loadPage.defaults, options ),
//rest omitted

我可以看到它将默认设置(mobile.loadPage.defaults)与用户定义的options

组合在一起

您需要通过选项传递reloadPage:true,因为默认值为false。

如果我向上跟随调用堆栈,则逻辑上(为了传递参数)停在

$.mobile.changePage( href, { transition: transition, reverse: reverse, role: role } );

所以我在这里传递了reloadPage:true但是这将修改我试图避免的jquery.mobile-1.0.1.js的源代码。

我是js和jquery的新手,所以不确定是否有一些标准的方法来传递这些选项,因为它看起来就像它的设计方式,或者它可能是这样设计的,供jquery.mobile内部使用和更改来源是唯一的方式。

我想知道是否有一些全局方式设置可用于此功能的参数/选项;似乎奇怪的是,jquery移动家伙似乎会为reloadPage编写代码,但不会将其暴露给callees。

2 个答案:

答案 0 :(得分:0)

我想你可能会对reloadPage的作用感到困惑,当你调用$ .mobile.changePage时你可以传入reloadPage,但这只会重新加载当前页面的缓存副本。

如果你正在寻找的是刷新,你需要告诉jQM不要通过使用data-ajax="false"或rel =“external”(对于域名链接之外)的链接通过AJAX加载

您是否正在尝试通过编辑jQM文档页面来学习jQM?有问题的链接是: <a href="docs/about/intro.html" class="ui-link-inherit">Intro to jQuery Mobile</a>如果您刚刚添加了数据-ajax =“false”,则会在新页面中加载intro.html(完全刷新)。

如果您确实想在此实例中传递reloadPage:true,则需要将href更改为#,然后使用reloadPage绑定一个调用$ .mobile.changePage的处理程序:true作为选项传入,或者只使用onClick属性(不太漂亮)

答案 1 :(得分:0)

我发现最简单的方法是添加:

<script type="text/javascript">

    $.mobile.loadPage.defaults.reloadPage = true;

</script>