【问题标题】:jquery mobile, issue when changing pagejquery mobile,更改页面时出现问题
【发布时间】:2014-04-07 19:16:23
【问题描述】:

在我的 jquery 移动网站中,我从页脚文本输入请求发送到控制器,控制器将 json 数据作为弹出窗口发送回视图(此弹出窗口内的数据使用 jstemplate 呈现)。

一切都按预期工作,但是当我更改页面请求被传递给控制器​​但弹出窗口没有显示。

从我发送的 js 函数中

 $("#myDataPopUp").popup("open").enhanceWithin();

在_Layout.cshtml里面

<div id="myDataPopUp" data-role="popup" class="ui-content" data-theme="a" />

再一次,在我更改页面之前一切正常(因为代码在 _Layout 中)它应该也可以在其他页面上运行。

【问题讨论】:

  • 你能澄清你的问题吗?您使用的是单页还是多页?你什么时候调用弹出窗口?是动态创建的吗?
  • 我正在使用多页。从 js 函数调用弹出窗口,该函数注入从控制器返回的 json 数据。如果您需要更多信息,请询问。
  • 当你调用它时弹出在另一个页面内?
  • @Omar,不,它在 Layout 里面,它是所有页面的母版页。
  • @omar 请附上详细说明,我会接受作为答案。

标签: jquery jquery-mobile


【解决方案1】:

由于您使用的是 jQuery Mobile 1.4,我建议您使用可以从任何页面访问的 External PopupExternal Popup 应该放在任何 page div data-role="page" 之外,然后应该手动初始化

外部弹出窗口:

<div data-role="popup">
  <!-- contents -->
</div>

<div data-role="page">
  <!-- contents -->
</div>

初始化外部弹出窗口:

如果 Popup 包含其他 jQM 小部件,您还需要通过调用 .enhanceWithin()初始化这些小部件。否则,.popup() 就足够了。

$(function () {
  $("#popupID").popup().enhanceWithin();
});

打开/关闭弹出窗口:

  • 动态

    /* to enhance jQM widgets inside popup, if any */  
    $("#popupID").popup("open").enhanceWithin();
    /* close it */
    $("#popupID").popup("close");
    
  • 静态

    <a href="#popupID" data-rel="popup">Popup</a>
    

【讨论】:

    【解决方案2】:

    在页面更改或调用 open 函数之前尝试这样放置:

     $("#myDataPopUp").popup();
     $("#myDataPopUp").popup("open");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多