javascript - 动态调整元素后,jQuery Isotope 无法正确重新排列

标签 javascript jquery css jquery-isotope jquery-masonry

我有一个同位素布局,所有东西 - 排序和过滤以及一般显示 - 都很好用。但我必须让同位素元素在点击时可展开。我通过跨度类完成此操作,该类在初始页面加载时通过 JavaScript 隐藏,但可以通过单击不同的跨度类来切换 <span class='Point'> .

这在一定程度上起作用:文本是可切换的 - 但布局不会在单击时调整大小,尽管我包括 .isotope('layout') .具体的 jQuery 代码如下:

   $(".risknotes").hide(); $grid.on( 'click', '.Point', function() {
    $(this).parent().find(".risknotes").toggle(2000);
    $(this).parent().toggleClass('bigger');
     $grid.isotope('layout')
    });

有趣的是:如果我单击过滤器或排序按钮,所有内容都会完美调整大小。只是不在初始加载或点击。我制作了一个重现问题的 jsfiddle:http://jsfiddle.net/3t2fk5aq/

最佳答案

你的问题是 jquery 需要时间来完成切换 .ricknotes 但同位素立即重新布局。 您可以使用 .toggle()complete 选项像这样处理它:

$grid.on('click', '.Point', function() {
            $(this)
                .parent()
                .find(".risknotes")
                .toggle({ duration: 200,complete: function(){ $grid.isotope('layout') } });
            $(this)
                .parent()
                .toggleClass('bigger');

        });

关于javascript - 动态调整元素后,jQuery Isotope 无法正确重新排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647554/

相关文章:

javascript - 如何在使用 Instagram API 时在 Meteor 中请求、存储和使用访问 token

javascript - 根据字符串对 float 进行排序?

javascript - html 中调用 onsubmit 的位置

javascript - 清除 Knockout.js 购物车编辑器示例中的行

jquery - 即使没有子项,Kendo UI Treeview 也会显示扭曲

javascript - 单击任意位置以隐藏滑动页脚

html - Flexbox 在 Chrome 的表格中工作,但在 Mozilla 中不工作

javascript - jQuery.unique 在 Microsoft Edge 中不起作用

javascript - 测量输入时间

html - 单击其他单选按钮时,单选按钮不会取消选中图像