2012-06-19 45 views
0

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

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

加载的“welcome.html”是否包含javascript? – r0m4n

+0

没有。所有它真的是一些文字。 – Nolski

回答

0

它可能不是最干净的解决方案,因为你可能寻找一种方式来触发一个事件导致加载动画本身隐藏起来,对吧?

但你可以尝试和跟踪的加载动画的类或ID,只是隐藏它是这样的:

$(document).ready(function() { 
     $('#welcome').click(function(){ 
      console.log('clicked'); 
      $('#mainContent').load('welcome.html', function(){ 
       $('.loadinganimationclass').hide(); 
      }); 
      $('#mainContent').trigger("pagecreate").trigger("refresh"); 
     }); 
    }); 
+0

不幸的是,似乎加载永远不会停止。一旦我可以回到主页面,没有更多的jQuery命令会工作(我的所有onClick的都没有被识别。) – Nolski

+0

很明显的问题,但你有没有试过$ .mobile.loading('hide'); ? – Michiel

1

我相信微调开始时你.trigger('pagecreate')

$.mobile.hidePageLoadingMsg(); 

这也是我的回调函数内运行的​​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()函数处理pseueo页的初始化所有:

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

也有一些你可以传递到$.mobile.changePage()功能选项,这里是它们的列表:http://jquerymobile.com/demos/1.1.0/docs/api/methods.html

+0

这非常有帮助,changePage函数的一个问题是我想将所有数据加载到特定的div中,而不会丢失页面上当前的所有其他数据。我正在查看changePage()函数的选项,并且我看到pageContainer()选项可能有效,但我不确定它如何适用于代码的其余部分...此外,我还得到加载屏幕消失但是一旦我回到我的主页,该网站不会识别点击,或者至少不会在页面上的任何点击监听器中运行任何代码。 – Nolski