我工作的一个部分演示应用程序来学习jQuery Mobile的事情。我已经尝试了很多的选择,但没能获得几件事情的解决方案: -如何在Jquery Mobile的两页之间传递和获取参数?
- http://jsfiddle.net/sahil20grover1988/zZMXQ/48/在这种情况下,当我在索引页它没有引导到添加PARAM与地址搜索页面
- 在情况下,如果我不添加PARAMS到索引页然后我如何通过PARAMS从指数页面搜索页面。
- 另外我需要帮助如何检索参数在搜索页面 ??
我工作的一个部分演示应用程序来学习jQuery Mobile的事情。我已经尝试了很多的选择,但没能获得几件事情的解决方案: -如何在Jquery Mobile的两页之间传递和获取参数?
这是否帮助?
JS
$('#page2').live('pageshow', function(event, ui) {
alert('Page 2 - CID: ' + getParameterByName('cid'));
});
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
HTML
<div data-role="page" id="home">
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li data-role="list-divider">
Home Page
</li>
<li>
<a href="?cid=1234#page2" rel="external">Page 2</a>
</li>
</ul>
</div>
</div>
<!-- page 2 -->
<div data-role="page" id="page2">
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li data-role="list-divider">
Page 2
</li>
<li>
<a href="?cid=4321#home">Home Page</a>
</li>
</ul>
</div>
</div>
我想出了这个简单的方法...
首先添加丘斯托m HTML5属性到页面1上的元素以保存要传递的数据。我的属性被命名为data-parm
<div data-role="page" id="one">
<div data-role="content">
<ul data-role="listview" data-theme="c">
<li><a data-parm="john" href="#two">one</a></li>
<li><a data-parm="mary" href="#two">two</a></li>
<li><a data-parm="sue" href="#two">three</a></li>
</ul>
</div>
</div>
<div data-role="page" id="two">
<div data-role="content">
<div id="showParmHere"></div>
</div>
</div>
在JavaScript中,创建选择属性,并将值的变量,这将是为您提供页面2.
上单击处理程序(或其他类型的处理程序)在这个例子中,我已经把它添加到一个div的HTML这是第2页
$("a").on("click", function (event) {
var parm = $(this).attr("data-parm");
//do something here with parameter on page 2 (or any page in the dom)
$("#showParmHere").html(parm);
});
简单和基本的使用JQUERY。尼斯! –
@Joel:使用'var parm = $('this')。data('parm');'而不是'.attr'。这种方式是安全的循环引用,因此从内存泄漏 –
@Tom:非常感谢提示。令人困惑的是,这似乎并不合意。比如这篇文章说的完全相反。 http://lookfirst.com/2011/12/dont-use-jquery-data-method-use-attr.html。哪个是对的? –
对我无意中发现了这个问题,因为同样的问题,但认为我找到了一个更简单的方法。至少如果你使用“pagebeforechange”事件。这就是我迄今为止尝试解决方案的地方。 “.options.link.context.search”:
您可以通过此对象路径得到的pageonchange事件函数的第二个参数的搜索字符串。我希望示例代码足以解释它。
$(document).live("pagebeforechange", function(e, secondparameter) {
alert(secondparameter.options.link.context.search);
});
我为jQM 1.4+创建了一个解决方案,它允许参数通过URL传递。这个工程相当不错,如果你希望用户能够直接进入到一个页面的参数(比如从电子邮件),或者如果用户刷新页面。
这是在MIT许可下,你可以找到它here on GitHub。
要使用URL传递勇气在jQuery Mobile的,你可以使用rel = “外部” ...
例子:
<a id="l" href="index.html?id='1234'#dateA" rel="external">
你可以看到: http://demos.jquerymobile.com/1.2.0/docs/pages/page-links.html
很好地解释说感谢,但为什么thiis不工作? http://jsfiddle.net/sahil20grover1988/VXV3R/9/ –