0

我正在从外部 html 文件将内容加载到 div 中。这很简单(虽然我在让内容出现时遇到了一些问题,但在这里解决了:jquery mobile - loading content into a div)但是一旦加载了内容(它只是文本),中心就会出现这个旋转加载动画不会消失的屏幕。我不知道 JQuery 是否正在尝试加载其他内容或什么。

<script>
        $(document).ready(function()
        {
            $('#welcome').click(function(){
                console.log('clicked');
                $('#mainContent').load('welcome.html');
            $('#mainContent').trigger("pagecreate").trigger("refresh");
            });
        });
</script>
4

2 回答 2

1

我相信微调器是在你启动的时候启动的.trigger('pagecreate')。在任何情况下,您都可以通过运行此函数来停止微调器:

$.mobile.hidePageLoadingMsg();

我将在.load()AJAX 请求的回调函数中运行:

    $(document).ready(function()
    {
        $('#welcome').click(function(){
            $('#mainContent').load('welcome.html', function () {
                $(this).trigger("create");
                $.mobile.hidePageLoadingMsg();
            });
        });
    });

你应该阅读 jQuery Mobile 文档的这个页面:http: //jquerymobile.com/demos/1.1.0/docs/api/events.html(注意黄色的大部分,这些很重要)

您使用document.ready的 jQuery Mobile 不能很好地发挥作用,建议您将pageinit事件用于单个伪页面元素。

要真正完成这项工作,您应该使用处理所有伪页面初始化的内置$.mobile.changePage()函数:

    $(document).delegate('#welcome', 'click', function()
    {
        $.mobile.changePage('welcome.html');
    });

您还可以将一些选项传递给$.mobile.changePage()函数,这里是它们的列表:http: //jquerymobile.com/demos/1.1.0/docs/api/methods.html

于 2012-06-19T22:39:42.920 回答
0

它可能不是最干净的解决方案,因为您可能正在寻找一种方法来触发导致加载动画自行隐藏的事件,对吧?

但是您可以尝试跟踪加载动画的类或 ID,然后像这样隐藏它:

    $(document).ready(function() {
        $('#welcome').click(function(){
            console.log('clicked');
            $('#mainContent').load('welcome.html', function(){
                $('.loadinganimationclass').hide();
            });
            $('#mainContent').trigger("pagecreate").trigger("refresh");
        });
    });
于 2012-06-19T22:30:07.967 回答