在 turbolinks:load 上有调用多个 function() 的 DRY 方法吗?

Is there a DRY way to call multiple function() on turbolinks:load?

如果我们有:

#app/assets/javascripts/tabbed_panels.js
var new_items = function() {
 #do something
});

$(document).on("turbolinks:load", new_items);

#app/assets/javascripts/paginate_users.js
var new_users = function() {
 #do something
});

$(document).on("turbolinks:load", new_users);

等等

有没有办法避免对每个脚本重复 $(document).on("turbolinks:load", '#');

我不认为为同一事件排队多个函数是一种糟糕的模式或违反 DRY 原则,但您可以将行为封装在单个函数中以避免让您的各种模块了解 Turbolinks 的加载行为:

var initialize = function(callback) {
  $(document).on('turbolinks:load', callback);
}

# later...
initialize(new_users);