在 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);
如果我们有:
#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);