2014-11-20 25 views
0

后不工作我有一个动态加载的图像库。每张图片都有一个数字数据编号,我想按照升序编号排序。然后,因为它们有很多,我想在每第n张图像之后插入一个'返回顶部'按钮。下面的代码工作在FF,Chrome和Safari浏览器在桌面上:iOS - insertAfter()append()

$(function() { 
    var Arr = $('.card').get(); 
    var Arr = Arr.sort(function(a,b) { 
    var aLoc = +$('.ad',a).data('id'), 
    bLoc = +$('.ad',b).data('id') 
    return aLoc < bLoc? -1:aLoc > bLoc? 1 :0 
    }) 
    $('#class').append(Arr); 
    $('<div class = "top">TOP</div>').insertAfter('#class div:nth-child(4n)'); 
}); 

小提琴here

偶尔,虽然无法预测,据我所知道的,它也适用于iOS,但通常会失败。我曾尝试在insertAfter()函数周围包装setTimeout()函数,但没有区别。

我不知道它是否相关,但是一旦数组被排序并附加到主div,图像就会被延迟加载。

我真的很感激任何线索,我哪里出了问题。

感谢

编辑:这是延迟加载功能:

$("img.lazy").lazyload({ 
     threshold : 200 
    }); 

它使用lazyload插件。在工作代码中,延迟加载函数出现后立即$('#class').append(Arr);

+0

请详细说明一下到底发生了什么在iOS – Tzach 2014-11-20 22:51:25

+0

你能告诉你的延迟加载功能? – Tomanow 2014-11-20 22:53:36

+0

@Tzach已排序的图像数组已正确显示,但未插入“顶部”div。 – sideroxylon 2014-11-20 22:53:47

回答

0

我认为这可能是一个iOS8问题 - 但更改:nth-child(n)nth-of-type(n)似乎已解决了问题。也许对iOS有更多了解的人可能会解释发生了什么。

在这里看到:SO