3

我正在开发一个结合 jQuery.mobile 和 asp.net webforms 的移动解决方案。

为了使我的 asp.net 控件的回发正常工作,我必须在页面顶部禁用 ajax,如下所示:

   <script>
      $.mobile.ajaxEnabled = false;
   </script>

但是当像这样禁用ajax时,其他功能似乎不起作用。我无法从 jQuery 文档准备好调用对话框/弹出窗口

例如:

  $(document).ready(function () {        
     $('#myPopup').popup('open'); 
  });

这只会导致弹出窗口在不到一秒的时间内显示,然后消失。此外,当我从代码隐藏注册一个客户端脚本以在单击服务器端按钮时触发弹出窗口时,弹出窗口只是闪烁,然后消失。但是当我在页面顶部禁用 ajax 时,弹出调用工作正常。

任何想法如何解决这些问题?

4

2 回答 2

0

文档准备好无法与jQuery Mobile. 它通常会在页面DOM填充之前触发。

而不是这一行:

$(document).ready(function () {        
    $('#myPopup').popup('open'); 
});

使用这一行:

$(document).on('pagebeforeshow', '#page-id', function(){       
    $('#myPopup').popup('open'); 
});

#page-id包含该弹出窗口的页面 id在哪里。

jQuery Mobile 在准备好文档时遇到了问题,因此它的开发人员创建了页面事件来解决这个问题,在这篇文章中阅读更多相关信息或在此处找到它。

编辑 :

我认为您的问题也在$.mobile.ajaxEnabled = false;处理中。

该代码示例必须mobileinit如下事件触发:

$(document).bind("mobileinit", function () {
    $.mobile.ajaxEnabled = false;
});

还有一件事,必须在初始化之前触发mobileinit事件,如下所示:jQuery Mobile

<script src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>      
<script>
        $(document).bind("mobileinit", function () {
            $.mobile.ajaxEnabled = false;
        });    
</script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>  
于 2013-03-14T09:54:12.443 回答
0

我做到了.....

不要使用此处描述的说明

只需打开 jquery.mobile-1.3.1.min.js 文件 ajaxEnabled:!0 并将其更改为 : ajaxEnabled:!1

现在点击 CTRL+F5 并在项目继续的同时让项目快乐!;)

于 2013-07-25T07:00:39.517 回答