Found a solution.
To add the 'isotope-hidden' class back in when hidden:
// Add hidden class if item hidden
var itemReveal = Isotope.Item.prototype.reveal;
Isotope.Item.prototype.reveal = function() {
itemReveal.apply( this, arguments );
$( this.element ).removeClass('isotope-hidden');
};
var itemHide = Isotope.Item.prototype.hide;
Isotope.Item.prototype.hide = function() {
itemHide.apply( this, arguments );
$( this.element ).addClass('isotope-hidden');
};
It seems that in the latest version you can't place a callback in the same place you previously could. You now use 'layoutComplete' and place it after the #filters click function.
// Just showing where filters code would be...
$('#filters').on( 'click', '.btn', function() {
...
$container.isotope({ filter: filterValue });
});
// Show alert if no items returned
var noItemsAlert = $('#equipment-list-container .alert');
$container.isotope( 'on', 'layoutComplete', function() {
var numItems = $container.find('.item:not(.isotope-hidden)').length;
if (numItems == 0) {
noItemsAlert.show(250);
} else {
noItemsAlert.hide(250);
}
});