А каков сакральный смысл отлова события на document в данном случае?
$.fn.pluginName= function () {
this.each(function () {
$(this).on('change', someHandler);
});
return this;
};
Если вы хотите заюзать делегирование событий из соображений производительности, то и это можно сделать проще:
(function ($) {
'use strict';
function someHandler (evt) {
console.log(evt.target);
}
$(function () {
$(document).on('change', '[data-my-plugin]', someHandler)
});
$.fn.myPlugin = function () {
this.each(function () {
$(this).attr('data-my-plugin', '')
});
}
}(jQuery));
//...
$('#someNode').myPlugin();
Что же до передачи this вторым параметром — то jQuery проверяет, является ли второй параметр строкой, и если нет, то вызов будет равнозначен такому:
$(document).on('change', undefined, this, someHandler);