( function ($) {
// plugin definition
$.fn.hilight = function ( options ) {
debug ( this );
// build main options before element iteration
var opts = $.extend ( {}, $.fn.hilight.defaults, options );
// iterate and reformat each matched element
return this.each ( function () {
// build element specific options
var o = $.meta ? $.extend({}, opts, $(this).data()) : opts;
// update element styles
$(this).css({
backgroundColor: o.background,
color: o.foreground
});
$(this).html ( $.fn.hilight.format ( $(this).html ( ) ) );
});
};
// private function for debugging
function debug($obj) {
if ( window.console && window.console.log ) {
window.console.log ( 'hilight selection count: ' + $obj.size ( ) );
}
}
// define and expose our format function
$.fn.hilight.format = function(txt) {
return '<strong>' + txt + '</strong>';
};
// plugin defaults
$.fn.hilight.defaults = {
foreground: 'red',
background: 'yellow'
};
})(jQuery);
|