2008-11-25 15 views
5

Actualmente estoy trabajando en un plugin de jQuery y me pregunto si sería posible hacer que el complemento escuche los eventos en lugar de ser desencadenado por eventos.Plugin de jQuery: manejo de eventos

Así que en lugar de esto:

$('#element_id').mouseover(function() { 
    $(this).plugin(); 
}); 

$('#element_id').mouseout(function() { 
    $(this).pluginHide(); 
}); 

quiero tratar de hacer algo como esto:?

$('#element_id').plugin(????, ????); 

y sustituir el 's con algún tipo de referencia al elemento y el caso de que debería activarlo para mostrar u ocultar. Todavía me estoy mojando los pies con jQuery, así que tengan paciencia si una solución a esto es dolorosamente obvia.

Respuesta

8

Después de experimentar un poco, parece que estaba buscando la función incorporada "bind()". Para resolver mi problema original:

jQuery.fn.plugin = function(show, hide) { 
    this.bind(show, function() { 
     // Do something to show. 
    }; 

    this.bind(hide, function() { 
     // Do something to hide. 
    }; 
}; 
+6

No use '$ (this)'. Use 'esto' – Aliostad