I have a Masonry Grid that is working beautifully. It loads perfectly and readjusts. But I am using a plugin that filters results (Search & Filter plugin for Wordpress) and uses AJAX to do that. But after the AJAX call, my masonry grid is no longer working. I know it is due to the fact that I need to reload Masonry after the AJAX call, but I don't exactly know how to do that. Does anyone know how I can do that?
Here is my basic HTML structure.
<div id="masonry-container>
<div id="search-results-container" class="masonry-brick">
<h2>Title</h2>
<img src="myimage.jpg">
<p>Content</p>
</div>
</div>
.search-results-container is the div that repeats.
My JS looks like this:
jQuery(window).load(function() {
var container = document.querySelector('#masonry-container');
var msnry = new Masonry( container, {
itemSelector: '.search-results-card',
columnWidth: '.search-results-card',
});
});
That works well until the AJAX is initiated and reloads the container. Then the Masonry calculations are off and everything is out of whack. I need to figure out a way to reload Masonry after the AJAX call. Any ideas?
You will want to call the reloadItems()
method on your Masonry instance. This will kick off the DOM recalculations:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.