d2d.emegrendeles.hu/resources/js/ajaxLink.js
E98Developer 68b7c35bef git init
2026-02-28 06:53:05 +01:00

96 lines
2.5 KiB
JavaScript

/*
try {
window.$ = window.jQuery = require('jquery');
console.info('van jQuery');
} catch (e) {
console.error('nincs jQuery');
}
*/
/**
* Usage
* $('a.selected').ajaxlink({});
*
* @param {Object} options
*/
(function($){
var opts;
//-----------------------------------------------
$.fn.ajaxlink = function(options)
{
// build main options
opts = $.extend({}, $.fn.ajaxlink.defaults, options);
return this.each(function()
{
var target=opts.target;
var inserttype=opts.inserttype;
var data=opts.data;
var ajaxtype=opts.ajaxtype;
var beforepost=opts.beforepost;
var afterpost=opts.afterpost;
var self=this;
var href=$(this).attr('href');
var data_target=$(this).data('target');
if(data_target) target=data_target;
if( $(this).data('not_ajax')==true ) return;
//Bind------
$(this).unbind('click.ajaxlink');
$(this).bind('click.ajaxlink', function(event)
{
event.preventDefault();
if(href=='#' || href=='') return;
beforepost(this,self);
$.ajax({
async: true,
type: ajaxtype,
url: href,
data: data,
dataType: "html",
cache: false,
success: function(result)
{
switch(inserttype)
{
case 'innerhtml' : $(target).html(result); break;
case 'append' : $(target).append(result); break;
case 'replace' : $(target).replaceWith(result); break;
case 'after' : $(target).after(result); break;
case 'before' : $(target).before(result); break;
}
afterpost(result, self);
}
});
});
});
};
//-----------------------------------------------
$.fn.ajaxlink.defaults =
{
target : 'body',
inserttype : 'innerhtml', // [innerhtml, append, replace, after, before]
ajaxtype : 'POST', //[GET, POST]
data : {},
beforepost : function () {},
afterpost : function () {}
};
})(jQuery);