Где я должен поставить эту функцию GLOBAL_FUNCTION(p_key, p_pattern)
? Внутри или снаружи функции готовности?
Вы можете поместить это в любое место в пределах всех мест, которые вы хотите назвать. Глобальный является одной из возможностей, но следует избегать, где это возможно. Вместо этого я бы предложил использовать пространство имен для ваших общих функций в их собственном объекте. Таким образом, вы можете извлечь их в отдельный файл JS для повторного использования.
Как мне вернуть ответ от этой глобальной функции?
Если функция делает запрос AJAX, вы ничего не можете вернуть, поскольку вызов должен быть асинхронным. Вы можете обойти это, предоставив функцию обратного вызова для выполнения после завершения запроса.
Учитывая эти моменты, код будет выглядеть примерно так:
// common.js
var common = (function() {
return {
global_function: function(key, callback) {
$.get('/ede/' + key + '/json', function(response) {
// perform common actions here, if needed..
callback && callback(response);
}
}
};
})();
// in your page:
$('button.icons8.icons8-edit-file').on("click", function() {
var key = $(this).data('key');
common.global_function(key, function(response) {
// Edit response.id...
});
});
$('button.icons8.icons8-delete-file').on("click", function() {
var key = $(this).data('key');
common.global_function(key, function(response) {
// Delete response.id...
});
});
Также имеет смысл извлечь логику удаления и редактирования в общую библиотеку, но я оставлю это вам на основе вашей собственной логики.
Наконец, обратите внимание на использование data()
здесь, так как создание ваших собственных нестандартных атрибутов сделает ваш HTML недействительным. Вместо этого используйте data-key
.