Follow the code link / plugin: (note: it's the same as the code I put here below in the post) link
Code: (note: error simulation)
// elemento é um elemento do DOM
(function($){
$.fn.plug = function(optionsPlugin) {
var plugin = this;
var defaultsPlugin = {
debug : false
elementos : true
};
confPlugin = $.extend(true, defaultsPlugin, optionsPlugin);
var defaultsEnvio = {
ajax : {
type : 'post',
url : '',
data : {}
}
};
if (confPlugin.elementos) {
var idElement = 0;
var elementos = new Array();
// elemento é um elemento do DOM
var criaElemento = function() {
elementos.push('novo elemento com id: '+ idElement );
};
// elemento é um elemento do DOM
var removeElemento = function(elemento){
elemento.fadeOut(1000, function() {
elemento.remove();
});
};
// elemento é um elemento do DOM
var statusElemento = function(elemento, status){
if (status)
elemento.addClass('ele-sucesso');
else
elemento.addClass('ele-erro');
};
};
var enviaAjax = function(){
$.ajax(
confEnvio.ajax
)
.done(function(res) {
if (confPlugin.elementos)
statusElemento(elementos[idElement], true);
})
.fail(function(res) {
if (confPlugin.elementos)
statusElemento(elementos[idElement], false);
})
.always(function() {
if (confPlugin.elementos)
setTimeout(
function(){
removeElemento(elementos[idElement]);
}
, 2000
);
});
};
var confEnvio = {};
plugin.enviar = function(optionsEnvio){
confEnvio = $.extend(true, defaultsEnvio, optionsEnvio);
if (confPlugin.elementos)
criaElemento();
enviaAjax();
idElement++;
};
return this.each(function() {
return plugin;
});
};
})(jQuery);
var enviaLa = $.fn.plug({debug:true});
enviaLa.enviar();
enviaLa.enviar();
I want to release this plugin in my Github, when I do this I will put the link here in this post.