【问题标题】:Ajax load content in multiple divs with same id/classAjax 在具有相同 id/class 的多个 div 中加载内容
【发布时间】:2014-02-19 16:08:27
【问题描述】:

我正在尝试将 RSS 提要加载到滑块中。滑块处于循环模式,因此在此模式下您将获得无限滚动,并且第一张幻灯片将在最后一张之后重复。所以我的 RSS 幻灯片实际上有 2 张幻灯片。

现在的问题是只有一个 div 才会加载内容。

我的 jQuery 加载 rss 文件:

        (function($)
{
    $(document).ready(function()
    {
        $.ajaxSetup(
        {
            cache: false,
            beforeSend: function() {
                $('#rssblok').show();
                $('#loading').show();
            },
            complete: function() {
                $('#loading').hide();
                $('#rssblok').show();
            },
            success: function() {
                $('#loading').hide();
                $('#rssblok').show();
            }
        });
        var $container = $("#rssblok");
        $container.load("/kantivi/kantivi_rss.php");
        var refreshId = setInterval(function()
        {
            $container.load('/kantivi/kantivi_rss.php');
        }, 9000);
    });
})(jQuery);

kantivi_rss.php 文件只是一个 RSS 加载器,它会回显内容。这一切都有效

现在滑块内容中必须加载提要的部分如下所示:

<?php 
$slider .= '<div id="rssblok">';
                                            $slider .= '<img src="/img/loading.GIF" id="loading" alt="loading" style="display:none;" />';
                                            $slider .= '</div>';
?>

如果我不把滑块放在一个循环中,那就只有一个

<div id="rssblok">

而且效果很好。但是在循环模式下,它不会加载 RSS 内容,因为其中有 2 张幻灯片,其中包含 &lt;div id="rssblok"&gt; div。

希望问题很清楚,如何解决这个问题?

【问题讨论】:

  • ids 必须是唯一的,使用一个类代替并迭代该类的元素
  • 我也有同样的想法,并在课堂上尝试过。但是这是同样的问题。

标签: php jquery ajax rss swiper


【解决方案1】:

您需要遍历所有容器并将负载应用于每个容器:

var $containers = $("#rssblok");
for (var i=0, j=$containers.length; i<j; i++){
    var $container = $($containers[i]);
    $container.load("/kantivi/kantivi_rss.php");
    var refreshId = setInterval(function(){
        $container.load('/kantivi/kantivi_rss.php');
    }, 9000);
}

【讨论】:

  • 感谢您的回复。我明白了,但它仍然无法正常工作。仅在非循环模式下。
  • 如果有多个调用 $("#rssblock") 或 $("#loading") 的话,你可能需要一个 for 循环。如果您可以创建一个显示相同问题的小提琴,我可以为您创建一个更具体的解决方案。
  • 做了一个简短的版本:jsfiddle.net/2PTue/6 它应该在两个 div 中发布两次 foo。
  • 当您将其更改为类而不是 ID 并使用该类添加第二个 div 时,它可以工作:jsfiddle.net/2PTue/15
  • 谢谢,我试试看!
猜你喜欢
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
相关资源
最近更新 更多