应用同位素通过replaceWith()替换元素?

时间:2014-04-08 02:32:14

标签: jquery jquery-isotope replacewith

更新 对不起,伙计们,我的不好,我的猜测错了。这不是因为replaceWith没有完成。实际上由于isotope而未应用于替换元素。我目前正在使用.isotope( 'destroy' )并重建整个页面。它不那么性感,因为用户会看到页面上的所有元素都在移动。现在它已成为isotope问题。有更好的方法吗?

我正在使用replaceWith将atml元素替换为ajax cal中的新元素。之后,我需要reLayout(来自isotope插件)我的页面。

我的部分代码:

success: function(result){
    var data = $(result);
    div.replaceWith(data);
    $(document).ready(function() {
        $("div#columns").isotope('reLayout');
    });
}

问题是被替换的元素和旧元素是重叠的。我猜它是因为在重新加载的html元素被完全加载之前页面被重新传递。因此,我添加了$(document).ready(),但它仍然没有用。所以我想知道reLayout完成后有没有办法运行replaceWith?感谢。

1 个答案:

答案 0 :(得分:1)

遇到了同样的问题,并使用了以下解决方案(在上面的例子中解释):

div.replaceWith(data);
$("div#columns").data('isotope').insert(div).layout();

这会导致已被替换的项目被读取到同位素列表,然后重新应用现有布局(因此这似乎在预先存在的过滤器和排序上保持状态!)。