我的砌体代码有问题。

它在pageload上工作正常,但是可以过滤砖石内部的项目,我使用ajax进行此操作,并用元素替换整个div以显示过滤后的项目。

发生这种情况后,将不再应用砌体代码,并且其会崩溃。

即使页面加载后内容发生更改,我如何确保砌体仍然可用?

在我的页脚中,我有以下代码:

<script type="text/javascript">
  $(document).ready(function() {
      $('.gridlist').isotope({
        itemSelector: '.masonryitem',
        layoutMode: 'masonry',
      });
  });
</script>


然后在我的custom.js中,我有以下内容:

$( document ).ready(function() {

   /* Ajax code voor aanbiedingen */
  $("#branche").on('change', function() {
    var option = $('#branche > option').filter(':selected');

    if(option.val() == 'default'){
      $.post("includes/ledenall.php", {
        filter: option.val()
      }, function(result){
        $("#content1").html(result);

      });
    }else{
      $.post("includes/leden.php?option=" + option.val(), {
        filter: option.val()
      }, function(result){
        $("#content1").html(result);
      });
    }
  });
});


这将返回我的php文件,但是这次没有应用砌体。

我该怎么办?

最佳答案

您可以在更改DOM后尝试重新应用同位素库:

/* Ajax code voor aanbiedingen */
$("#branche").on('change', function() {
  var option = $('#branche > option').filter(':selected');

  if(option.val() == 'default'){
    $.post("includes/ledenall.php", {
      filter: option.val()
    }, function(result){
      $("#content1").html(result);
      $('.gridlist').isotope({
        itemSelector: '.masonryitem',
        layoutMode: 'masonry',
      });
    });
  }else{
    $.post("includes/leden.php?option=" + option.val(), {
      filter: option.val()
    }, function(result){
      $("#content1").html(result);
      $('.gridlist').isotope({
        itemSelector: '.masonryitem',
        layoutMode: 'masonry',
      });
    });
  }
});


我不知道在更新的DOM中是否完全替换了.gridlist。如果不是,则可能需要以某种方式“删除”旧的同位素实例,但是您需要这样做。

07-24 18:12
查看更多