如何在Jquery Mobile中的两个页面之间传递和获取参数?

发布于 2024-12-06 19:39:15 字数 512 浏览 1 评论 0原文

我正在开发一些演示应用程序来学习 Jquery Mobile 中的知识。我尝试了很多选项,但无法在一些问题上找到解决方案:-

  1. http://jsfiddle .net/sahil20grover1988/zZMXQ/48/ 在这种情况下,当我添加 paramUrl索引页它不定向到搜索页
  2. 如果我不将参数添加到索引页,那么我如何传递参数< /strong> 从索引页搜索页
  3. 我还需要帮助如何在搜索页面中检索参数

I am working on a some demo App to learn things in Jquery Mobile. I have tried a lot of options but not able to get solution on a few things :-

  1. http://jsfiddle.net/sahil20grover1988/zZMXQ/48/ In this case when i add param with Url in Index page it is not directing to Search Page
  2. In case if I dont add Params to Index page then how do I pass params from Index page to Search page.
  3. Also I need help how to retrieve the Params in search page ??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

眼泪淡了忧伤 2024-12-13 19:39:15

这有帮助吗?

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>

Does this help?

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>
吃不饱 2024-12-13 19:39:15

我想出了这个简单的方法...

首先将自定义 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 页上使用的变量。

对于此示例,我已将其添加到第 2 页上的 div 的 html 中。

$("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);

});

I came up with this simple approach...

First add custom HTML5 attributes to the elements on page 1 to hold the data to be passed. My attribute is named 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>

In your javascript, create a click handler (or other type of handler) that selects the attribute and assigns the value to a variable which will be available for you on page 2.

For this example, I have added it to the html of a div that is on page 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);

});
猫烠⑼条掵仅有一顆心 2024-12-13 19:39:15

要在 jQuery Mobile 中通过 url 传递 valor,您可以使用 rel="external"...

示例:

<a id="l" href="index.html?id='1234'#dateA" rel="external">

您可以看到:
http://demos.jquerymobile.com/1.2.0/docs /pages/page-links.html

To pass valor with url in jQuery mobile you can use rel="external"...

Example:

<a id="l" href="index.html?id='1234'#dateA" rel="external">

You can see:
http://demos.jquerymobile.com/1.2.0/docs/pages/page-links.html

街道布景 2024-12-13 19:39:15

我偶然发现了这个问题,因为同样的问题,但我认为我找到了一种更简单的方法。至少如果您使用“pagebeforechange”事件。到目前为止,这就是我尝试解决方案的地方。

您可以通过以下对象路径从 pageonchange 事件函数的第二个参数中获取搜索字符串:“.options.link.context.search”。我希望示例代码足以解释它。

$(document).live("pagebeforechange", function(e, secondparameter) {
  alert(secondparameter.options.link.context.search);
});

I stumbled on this question because the same issue, but think I found an easier way. At least if you use the "pagebeforechange" event. That's where I tried the solution so far.

You can get the search string from the second parameter of the pageonchange event function by this object path: ".options.link.context.search". I hope the example code is enough to explain it.

$(document).live("pagebeforechange", function(e, secondparameter) {
  alert(secondparameter.options.link.context.search);
});
懒猫 2024-12-13 19:39:15

我为 jQM 1.4+ 创建了一个解决方案,它允许通过 URL 传递参数。如果您希望用户能够直接进入带有参数的页面(例如从电子邮件),或者用户刷新页面,那么这种方法非常有效。

它受 MIT 许可,您可以在 GitHub 上找到它。

I created a solution for jQM 1.4+ which allows parameters to be passed through the URL. This works quite nicely if you want the user to be able to go directly to a page with parameters (say from an e-mail), or if the user refreshes the page.

It's under the MIT license and you can find it here on GitHub.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文