что я добавил после 9-ой строки:
$this = $(this);
$('.grid').masonry( 'on', 'layoutComplete', function() {
destination = $($this).offset().top;
$('body').animate({scrollTop: destination}, 500).off();
});
все работает, только многократно, как вы и сказали нужно чтобы срабатывало один раз - с этим разобраться не могу - покажите