jQueryのプラグイン作成に、fn.extend()を使います。
jQuery.fn.extend():Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.
https://api.jquery.com/jquery.fn.extend/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery plugin</title>
</head>
<body>
<p><img src="image01.jpg"></p>
<p><img src="image02.jpg"></p>
<p><img src="image03.jpg"></p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="jquery.showsize.js"></script>
<script>
$(function(){
$('img').showsize({
size: 22,
opacity: 0.9
});
});
</script>
</body>
</html>
;(function($){
$.fn.showsize = function(options){
var elements = this;
elements.each(function(){
var opts = $.extend({}, $.fn.showsize.defaults, options, $(this).data());
$(this).click(function(){
var msg = $(this).width() + ' x ' + $(this).height();
$(this).wrap('<div style="position:relative;"></div>');
var div = $('<div>')
.text(msg)
.css('position', 'absolute')
.css('top', '0')
.css('padding', '2px')
.css('background', getRandomColor())
.css('font-size', opts.size +'px')
.css('color','white')
.css('opacity',opts.opacity);
$(this).after(div);
});
});
return this;
};
function getRandomColor(){
var colors = ['red', 'pink', 'orange', 'green', 'blue'];
return colors[Math.floor(Math.random()* colors.length)];
}
$.fn.showsize.defaults = {
size: 10,
opacity: 0.8
};
})(jQuery);