Ваша функция sendMail находится в своей области видимости и не может выйти сама по себе. Вам нужно выйти из ограничений из локальной области видимости, поэтому вам нужно присоединить его к «глобальному» объекту.
Таким образом, вы можете сделать его плагином jQuery через $.fn.
или прикрепить его к оконный объект, или и то и другое, чтобы попасть в глобальную область видимости.
Делать его плагином jQuery действительно имеет смысл, только если вы на самом деле получаете данные из объекта, из которого вызываете его, но нет никакой причины, почему ты не можешь сделать это так.
(function ($) {
window.sendMail = $.fn.sendMail = function(subject, message) {
return $.ajax({
url: '',
type: '',
headers: {'': getCookie('')},
data: {'subject': subject, 'message': message},
success: function (data) {},
error: function (data) {}
});
}
})($v1);
(function ($) {
$('#post-form').on('submit', function (event) {
event.preventDefault();
var $btn = $('#submit-btn');
$btn.attr('disabled', 'true');
setTimeout(function () {
$btn.removeAttr('disabled');
}, 1500);
// now you can choose which to use.
$btn.sendMail($('#subject').val(), $('#text').val())
//or
window.sendMail($('#subject').val(), $('#text').val())
});
})($v1);