【问题标题】:auto refresh a div using javascript使用javascript自动刷新div
【发布时间】:2013-03-13 06:16:35
【问题描述】:

情况我正在尝试自动刷新在 Joomla 2.5 的文章中定义的标签

     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">         </script> 
     <script> 
     var auto_refresh = setInterval(
     function()
     {
     alert("testing");
     $('#results').fadeOut('slow').load('#results').fadeIn("slow");
     }, 20000);
     </script-->

     <div id="results">
     {szakitable  csv = "http://127.0.0.1/msedcl/Archives/status2.csv" csvseparator=","  width= 430}
     {/szakitable}
     </div>

以上代码使用了一个名为 szaki 表的扩展,它允许将 csv 文件直接嵌入到文章中。 我要求 div 应该每 20 秒重新加载一次,以便在 csv 文件中所做的更改反映在网页上。 问题 当我调用 "$('#results').fadeOut('slow').load('#results').fadeIn("slow");" 发生的是整个页面在 div 区域内重新加载。这不是我需要的。

请给点建议!

【问题讨论】:

    标签: jquery joomla2.5


    【解决方案1】:

    你试过了吗?

    $('#results').fadeOut('slow').load('{current_page.html} #results').fadeIn("slow");
    

    将 {current_page.html} 替换为文档的文件名

    使用回调的另一种方式

    $('#results').fadeOut('slow', function(){
        $(this).load('index.html #results').fadeIn("slow")
    });
    

    【讨论】:

    • 感谢您的快速回复。当我实施您的解决方案时,通过 $('#results').fadeOut('slow').load('{index.php} #results').fadeIn("slow");我面临的问题是,由于某种原因,div 将整个页面再次加载到小 div 中,并且还会扭曲我所有的下拉菜单。我认为 jquery 在某处与 Joomla 内置查询发生冲突
    • 应该是这样的$('#results').fadeOut('slow').load('index.php #results').fadeIn("slow");查看我更新的答案
    【解决方案2】:

    看到.load()是需要从其他页面加载外部数据到当前页面而不刷新整个页面。

    当我看到您的代码时,您正在加载 div #results,这根本不起作用。

    来自文档:

    Loading Page Fragments:

    .load() method, unlike $.get(), allows us to specify a portion of the remote document to be inserted. 这是通过 url 参数的特殊语法实现的。如果字符串中包含一个或多个空格字符,则字符串中第一个空格之后的部分被假定为确定要加载的内容的 jQuery 选择器。

    example:

    $('#result').load('ajax/test.html #container');
    

    这将加载的是 gets the test.htmlfind the element with id of container 并将其加载到当前页面上的元素 result 内。


    所以在你的情况下:

    var auto_refresh = setInterval(function(){
       alert("testing");
       $('#results').fadeOut('slow').load('targetpage.php #results').fadeIn("slow");
     }, 20000); //-------------------------^^^^^^^^^^^^^^---required
    

    或者如果你用其他方式加载它,那么你可以这样做:

    $('#results').fadeOut('slow').fadeIn("slow");
    

    【讨论】:

    • 感谢您的快速回复。当我实施您的解决方案时,通过 $('#results').fadeOut('slow').load('index.php #results').fadeIn("slow");我面临的问题是,由于某种原因,div 本身再次加载了整个页面,并且还扭曲了我所有的下拉菜单。我认为 jquery 在某处与 Joomla 内置查询发生冲突
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2013-03-11
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多