Je suis en train de construire mon premier plugin jquery, il crée essentiellement un bouton de div avec la souris sur/etc états, le code suivant fonctionne pour le bouton de base, mais je veux créer une méthode de surbrillance assigner une classe pour remplacer la classe 'normale'. La méthode s'appelle cependant je ne peux pas sembler lire les options? Aussi, si j'affecte le nom de classe (addClass) en le codant en dur, je semble perdre l'événement de la souris pour les états over et click?jQuery plugin méthodes personnalisées
Le code:
(function(jQuery) {
jQuery.fn.divbutton = function(options)
{
// default settings
var options = jQuery.extend(
{
width: '75px', // button width
height: '25px', // button height
normal_class: 'brighterbutton', // normal state class
highlight_class: 'brighterbutton-highlight', // normal state class
mouseover_class: 'brighterbutton-mouseover', // mouseover class
mousedown_class: 'brighterbutton-mousedown', // mousedown class
highlighted: false
},
options);
this.each(function()
{
jQuery(this).addClass(options.normal_class);
jQuery(this).width(options.width);
jQuery(this).height(options.height);
jQuery(this).mouseover(function() {
jQuery(this).addClass(options.mouseover_class);
});
jQuery(this).mouseout(function() {
jQuery(this).removeClass(options.mouseover_class);
jQuery(this).removeClass(options.mousedown_class);
});
jQuery(this).mousedown(function() {
jQuery(this).addClass(options.mousedown_class);
});
jQuery(this).mouseup(function() {
jQuery(this).removeClass(options.mousedown_class);
});
});
// public methods
this.doHighlight = function()
{
alert("this doesnt get called");
return this;
};
return this;
};
jQuery.fn.highlight = function()
{
alert("this gets called");
return this.each(function()
{
//this.removeClass(this.options.normal_class);
//this.addClass(this.options.highlight_class);
});
};
})(jQuery);
ne pas jQuery (this) plusieurs fois. Enregistrez-le dans un var. var $ this = $ (this); – redsquare
c'est un bon conseil, merci –
Désolé ... mais quelle est la différence? Quelques caractères à taper? – Fernando