Saltar al contenido

Aplicando POO con jQuery

Si encuentras algún detalle que no comprendes puedes dejarlo en la sección de comentarios y haremos todo lo necesario de ayudarte lo más rápido posible.

Solución:

Solo asignar una función a una propiedad de un objeto no asocia this dentro de la función con el objeto. Es la forma en que llamas a la función.

Llamando

.hover(my_zoomin.hoverOn,...)

solo estás pasando la función. No “recordará” a qué objeto pertenecía. Lo que puedes hacer es pasar una función anónima y llamar hoverOn en el interior:

.hover(function() my_zoomin.hoverOn(); ,...)

Esto hará que el this en el interior hoverOn Referirse a my_zoomin. Entonces la llamada a this.hoverReset() trabajará. Sin embargo, dentro hoverOnVas a no tener una referencia al objeto jQuery creado por el selector.

Una solución sería pasar los elementos seleccionados como parámetro:

var zoomin = function() 
   // Constructor goes here
;

zoomin.prototype = 
   hoverOn: function($ele) 
      this.hoverReset($ele);
      // More logic here using jQuery's $ele...
   ,
   hoverReset: function($ele) 
      // Some logic here.
   
;


var my_zoomin = new zoomin();
$(".some_class").hover(function()  
    my_zoomin.hoverOn($(this));  // pass $(this) to the method
, function()  
    return null; 
);

Como siguiente paso, podría considerar hacer una Complemento jQuery.

Te mostramos las comentarios y valoraciones de los lectores

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *