If we have:
#app/assets/javascripts/tabbed_panels.js
var new_items = function() {
#do something
});
$(document).on("turbolinks:load", new_items);
and
#app/assets/javascripts/paginate_users.js
var new_users = function() {
#do something
});
$(document).on("turbolinks:load", new_users);
etc
Is there a way to avoid repeating $(document).on("turbolinks:load", '#');
for every script?
I don't think queuing multiple functions for the same event is a bad pattern or violates DRY principles, but you could encapsulate the behavior in a single function to avoid having your various modules know about the load behavior of Turbolinks:
var initialize = function(callback) {
$(document).on('turbolinks:load', callback);
}
# later...
initialize(new_users);