Currently, I am trying to use new Batch Trigger. It works well on page load, but doesn't see elements which were added via ajax. I tried to use something like
$.ajax({blablabla, success: function(response){blablabla,
ScrollTrigger.refresh();
}
but doesn't work. Are any other possible ways?
If you need to have everything batched (I kinda doubt you do, but...) you can just keep a variable for your ScrollTriggers so that you can kill() the old ones and create new ones as you add stuff to your page. The .batch() method returns an Array of ScrollTrigger instances.
let triggers;
function refreshBatch(elements, vars) {
triggers && triggers.forEach(t => t.kill()); // kill all the old ones
triggers = ScrollTrigger.create(elements, vars);
}