Может ли кто-нибудь дать мне совет по поводу этого кода jquery, в данном конкретном случае это правильная практика? Он работает нормально, но кажется устаревшим.
<script>
(function($) {
'use strict';
var $filters = $('.filter [data-filter]'),
$boxes = $('.boxes [data-cat]');
$filters.on('click', function(e) {
e.preventDefault();
var $this = $(this);
$filters.removeClass('active');
$this.addClass('active');
var $filterColor = $this.attr('data-filter');
if ($filterColor == 'all') {
$boxes.removeClass('is-animated')
.fadeOut().promise().done(function() {
$boxes.addClass('is-animated').fadeIn();
});
} else {
$boxes.removeClass('is-animated')
.fadeOut().promise().done(function() {
$boxes.filter(function(i,el){
return el.dataset.cat.split(',').indexOf($filterColor)!==-1;
})
.addClass('is-animated').fadeIn();
});
}
});
})(jQuery);
</script>