2012-02-08 25 views
1

我正在使用jquery.mobile-1.0.1。将'选项'覆盖传递给jquery函数

我试图做一个UI的列表视图当前的“标签”上点击时重新加载页面:

enter image description here

我已经设法追查功能和更改源代码在jquery.mobile-1.0.1.js来解决这个问题,但我想知道是否有办法做到这一点没有修改jquery移动源

有问题的功能是:

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

我可以看到它与定义options

你需要传递reloadPage用户相结合的默认设置(mobile.loadPage.defaults):通过选择真正作为默认假。

如果我按照调用堆栈向上它在逻辑上(用于传递参数的目的)停止在

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

所以我在reloadPage通过:真在这里,但将被修改的jQuery的源代码。我试图避免的mobile-1.0.1.js。

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

我想知道是否有一些全局的方式来设置参数/选项,可用于此功能;这似乎很奇怪的jQuery手机的人似乎代码为reloadPage,但不公开被调用者。

+0

可能是更具体的了解,你想做些什么?是你的问题试图用'选项'覆盖'默认值',并且不会改变?是这个吗 ? – BernardoFire 2012-02-08 05:36:03

+0

我想通过选项传递'reloadPage:true',因为默认值为false。 – wal 2012-02-08 05:41:38

回答

0

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

<script type="text/javascript"> 

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

</script> 
0

我想你可能会被reloadPage做的事迷惑,当你调用$ .mobile.changePage时你可以通过reloadPage传递,但是这只会重载当前页面的缓存副本。

如果你正在寻找的是你需要告诉JQM不通过AJAX加载通过使用data-ajax="false"或相对链接=“外部”(域链接外)

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

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

+0

我只使用文档页面作为示例。在实际的应用程序中,页面不被缓存,因为url有一个查询字符串,根据chrome调试器在切换标签页时不会被缓存(不像我看到的docs页面在切换'tabs'时被缓存)。你能否详细说明或提供一个代码片段来“将href更改为#然后绑定处理程序”? – wal 2012-02-08 22:16:27