Edit: The part below was, I think, me not seeing the forest for all the trees. The issue is quite simply that you're passing the string 'window' to jQuery, rather than the object window. So jQuery tries to bind an event listener to a <window> HTML element - which, obviously, does not exist.
What you want, is
$(window).bind("load", function () { .... });
or, better:
$(window).on("load", function () { .... });
or
$(window).load(function () { .... });
or, simply
$(function () { .... });
basically, anything other than trying to pass the string 'window'
Actually, the least flexible part of your code are the ajax requests themselves. If the ajax options are hard-coded in the plugin, you still don't have much flexibility; it's the same ajax requests each time. For instance, if you want to load ajax on a scroll event, you still have to edit the plugin to add the ajax request options and/or add an if(options.eventType === "scroll"). So you're splitting your code up, but not gaining any real flexibility.
I'd suggest making a simple function that takes an element, an event type, and some ajax options, so you can bind any event to any ajax request. Something like
function bindAjax(element, event, ajaxOptions) {
ajaxOptions = $.extend({
// default ajax options, if any
}, ajaxOptions);
$(element).on(event, function (event) {
$.ajax(ajaxOptions);
event.preventDefault();
});
}
bindAjax(window, "load", { ... });
You don't gain that much by doing this, though, compared to "raw" jQuery code.