jquery mobile,更改页面时发出问题

时间:2014-04-06 16:23:15

标签: jquery jquery-mobile

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

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

来自我的js函数我正在发送

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

和_Layout.cshtml内部

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

同样,一切正常,直到我更改页面(因为代码在_Layout内)它也应该在其他页面上工作。

2 个答案:

答案 0 :(得分:2)

由于您使用的是jQuery Mobile 1.4,我建议您使用外部弹出,可以从任何页面访问。 外部弹出窗口应放在任何页面 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>
    

答案 1 :(得分:0)

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

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