我有类似this的例子,排序效果很好。到目前为止,我可以看到同位素使用某种缓存,然后使用CSS规则,它在最终视图中对所有内容进行排序。但它实际上并没有对DOM进行排序,因此焦点循环不能按预期工作。除了自己对DOM进行排序之外,我还能做些什么来解决这个问题吗?
答案 0 :(得分:0)
最后,我的解决方案是使用他的绝对位置计算每个元素的tabindex。
function sortFocus(sortClass) {
var button = $('div.isotope-button').first() ;
setTimeout(function() {
$('div.isotope-button.' + sortClass).each(function(index) {
var pos = $(this).position(), posx = (pos.left) / button.outerWidth(), posy = ((pos.top) / button.outerHeight()) + 1;
$(this).find('a').attr('tabindex', posy + '' + posx);
});
}, 1000);
}
一些想法:
答案 1 :(得分:0)
这也有效,filterItems总是以正确的顺序返回。
$myIsotope.on('arrangeComplete', function (e, filteredItems) {
var tabIndex = 1;
$(filteredItems).each(function (index, item) {
$(item.element).find('a.title').attr('tabindex', tabIndex);
tabIndex++;
});
});