2008-11-25 7 views
5

Ich arbeite gerade an einem jQuery-Plugin und frage mich, ob es möglich ist, dass das Plugin auf Ereignisse lauscht und nicht durch Ereignisse ausgelöst wird.jQuery Plugin: Ereignisse behandeln

Anstatt also diese:

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

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

möchte ich versuchen, so etwas zu tun:

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

und ersetzen Sie die 's mit irgendeiner Art von Referenz auf das Element und Fall, dass sollte es zum Anzeigen oder Verbergen auslösen. Ich bekomme immer noch meine Füße nass von jQuery, also ertragen Sie mit mir, wenn eine Lösung dafür schmerzhaft offensichtlich ist.

Antwort

8

Nachdem ich ein wenig experimentiert habe, sieht es so aus, als ob ich nach der eingebauten "bind()" -Funktion suchte. Um mein ursprüngliches Problem zu lösen:

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

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

Verwenden Sie '$ (this)' nicht. Verwende 'das' – Aliostad