Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mobile jQuery移动弹出动态URL_Jquery Mobile_Dynamic_Popup_Hyperlink - Fatal编程技术网

Jquery mobile jQuery移动弹出动态URL

Jquery mobile jQuery移动弹出动态URL,jquery-mobile,dynamic,popup,hyperlink,Jquery Mobile,Dynamic,Popup,Hyperlink,我有问题的动态网址在弹出窗口。这是我的代码: <!-- content --> <ul data-role="listview"> <li data-role="list-divider">Group 1</li> <li data-icon="false"><a href="person.php?id=1#popup-menu" data-rel="popup" data-transition="slid

我有问题的动态网址在弹出窗口。这是我的代码:

<!-- content -->
<ul data-role="listview">
    <li data-role="list-divider">Group 1</li>
        <li data-icon="false"><a href="person.php?id=1#popup-menu" data-rel="popup" data-transition="slideup">List 1a</a></li>
        <li data-icon="false"><a href="person.php?id=2#popup-menu" data-rel="popup" data-transition="slideup">List 1b</a></li>

    <li data-role="list-divider">Group 2</li>
        <li data-icon="false"><a href="person.php?id=3#popup-menu" data-rel="popup" data-transition="slideup">List 2a</a></li>
</ul><!-- /content -->

<!-- popup-menu -->
<div data-role="popup" id="popup-menu">
    <ul data-role="listview" style="min-width:210px;">
        <li data-role="divider">Choose an action</li>
            <li><a href="#">View details</a></li>
            <li><a href="#">Share</a></li>
    </ul>
</div><!-- /popup-menu -->

  • 第1组
  • 第2组
  • 选择一个操作
基本上,当我单击弹出窗口上的链接时,我将转到被调用方的url所在的页面

因此,如果我单击弹出窗口显示的列表1a,然后我单击查看详细信息,页面将指向URLperson.php?id=1

我该怎么做

我可以根据列表的数量多次创建弹出div,但我认为这是对DOM对象的浪费(如果我找不到任何优雅的解决方案,我的最后手段)


谢谢

因为您实际上只需要向弹出窗口传递一个人的id,您可以通过以下方式实现您的目标:

首先简化listview标记,并将
id
存储在listview项锚定的
data id
属性中

  • 第1组
  • 第2组
并将
id
标记添加到弹出窗口中的“查看详细信息”锚点,以便以后更容易访问

  • Second
    上单击()
    事件将当前id存储到全局可用变量(我们称之为
    currentId
    )并以编程方式打开弹出窗口

    var currentId=0;
    ...
    $('#page')。on('pageinit',function(){
    $(“#列出li a”)。单击(函数(e){
    e、 预防默认值();
    currentId=$(this.attr(“数据id”);
    $(“#弹出菜单”).popup(“打开”{transition:“slideup”});
    });
    });
    
    第三个
    popubeforeoposition
    事件中构建url并将其分配给相应的锚定

    var baseURL=“person.php?id=”;
    ...
    $(“#弹出菜单”)。在('popuppeforeoposition',function()上{
    $(“#详细信息”).attr(“href”,baseURL+currentId);
    });
    

    最后,这里为您工作。

    使用全局可用变量是个好主意。尽管我期待一种不会创建jQuery事件的方法。谢谢