Fire Ajax Rest只调用视口中的元素

时间:2014-11-10 10:19:55

标签: javascript jquery html ajax rest

我遇到了以下问题。

我们正在使用生成div列表的模板,所有div都具有相同的类等。 每个div都包含一个隐藏的输入字段,其中包含与其链接的目标站点的ID。

现在我的工作是使用此ID为每个div生成ajax rest调用,以接收目标站点上的注释量。

我目前的解决方案是一个简单的jQuery,遍历所有div并为包含单个目标ID的每个div触发一个rest调用,然后在目标页面上附加注释数。

但是,页面上可能存在大量的div,因此客户只需要在向下滚动页面时触发当前可查看的div的其余调用。

有没有办法做到这一点?

重要信息:我必须使用jQuery 1.7,它必须在IE8中运行! -.-

亲切的问候

其他信息: 模板呈现的所有div都是可见的,因此我无法检查:visible。我需要一种方法来检查它们是否在视口中。我尝试了一些inview-plugins等,但是他们需要一个与之绑定的特定ID,然后检查具有此ID的元素是否会进入视图。但是,我的所有元素都具有相同的类,并且根本没有ID,因为它们由同一模板呈现。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用$('.element').is(":visible")

<强> http://jsfiddle.net/4mu18z2y/1/

我还没有在IE8中测试它。

答案 1 :(得分:0)

你必须获得每个元素的窗口位置和偏移顶部...

$(document).ready(function(){
    var windowSize = $(window).height();
    console.log("Window size: " + windowSize);
    $(".test").each(function(){
        var top = $(this).offset().top; // element top position
        if(top < windowSize){
            console.log($(this));
            // your ajax call
        }
    });
});

Finddle:http://jsfiddle.net/m2wnbp2c/