(function($){ $.fn.extend({ imghover: function(opt){ return this.each(function() { opt = $.extend({ prefix: '', suffix: '_o', src: '', btnOnly: true, fade: false, fadeSpeed: 500 }, opt || {}); var node = $(this); if(!node.is('img')&&!node.is(':image')){ var sel = 'img,:image'; if (opt.btnOnly) sel = 'a '+sel; node.find(sel).imghover(opt); return; } var orgImg = node.attr('src'); var hoverImg; if(opt.src){ hoverImg = opt.src; }else{ hoverImg = orgImg; if(opt.prefix){ var pos = hoverImg.lastIndexOf('/'); if(pos>0){ hoverImg = hoverImg.substr(0,pos-1)+opt.prefix+hoverImg.substr(pos-1); }else{ hoverImg = opt.prefix+hoverImg; } } if(opt.suffix){ var pos = hoverImg.lastIndexOf('.'); if(pos>0){ hoverImg = hoverImg.substr(0,pos)+opt.suffix+hoverImg.substr(pos); }else{ hoverImg = hoverImg+opt.suffix; } } } if(opt.fade){ var offset = node.offset(); var hover = node.clone(true); hover.attr('src', hoverImg); hover.css({ position: 'absolute', left: offset.left, top: offset.top, zIndex: 1000 }).hide().insertAfter(node); node.mouseover( function(){ var offset=node.offset(); hover.css({left: offset.left, top: offset.top}); hover.fadeIn(opt.fadeSpeed); node.fadeOut(opt.fadeSpeed,function(){node.show()}); } ); hover.mouseout( function(){ node.fadeIn(opt.fadeSpeed); hover.fadeOut(opt.fadeSpeed); } ); }else{ node.hover( function(){node.attr('src', hoverImg)}, function(){node.attr('src', orgImg)} ); } }); } }); })(jQuery);