単純なjQueryプラグインを作成していて、関数で呼び出し元の要素を参照しようとしていshrink()
ます。要素を渡さない場合this
は参照することを知ってwindow
いますが、jQueryプラグインを呼び出した要素を参照する方法はありますか?そうでない場合は、どのようにthis
コールバックを渡します$(window).on('resize', shrink);
か?
$(function ($) {
$.fn.shrinkIt = function (options) {
var settings = $.extend({
className: "shortened",
maxWidth: 800
}, options);
var shrink = function (elem) {
var $this = $(elem);
var viewerWidth = $('.header').width();
if (viewerWidth > 800) {
$this.removeClass(settings.className);
} else {
$this.addClass(settings.className);
}
$this.css('visibility', 'visible');
};
return this.each(function () {
shrink(this);
$(window).on('resize', shrink); // how to get 'this' to shrink() function??
});
};
$('.lessonDocumentType').shrinkIt();
})(jQuery);