Te hago un par de correcciones.
1.- Tratá siempre de usar $(this) en lugar de this. De esta forma convertís el objeto a un objeto jQuery y podés aplicarle sus métodos.
Esto no funciona:
Código Javascript
:
Ver originalvar base=this;
base.html(probador);
dado que
base no es un objeto jQuery.
2.- Para que tu plugin funcione con todos los elementos que se pasa en el selector, tenés que usar .each(). De esta forma la acción se ejecuta
para cada elemento.
Te paso el plugin con esas dos correcciones. Analizalo y fijate cuales son los cambios.
Código Javascript
:
Ver original(function($){
$.fn.prueba = function(options)
{
defaults={
texto:'texto default'
};
var options= $.extend(defaults,options);
$(this).each(function(){
var base=$(this);
var probador;
this.mostrarTexto = function(texto){
probador = $('<div></div>');//genera el contenedor de texto
probador.html(texto);//genera el texto en el contenedor
base.html(probador);
}
this.mostrarTexto(options.texto);
probador.click(function(){
base.hide('slow');
});
});
}
})(jQuery);