Я пытаюсь создать свой первый jquery-плагин, он в основном создает кнопку из div с помощью мыши над состояниями/щелчками и т. Д., Следующий код работает для основной кнопки, однако я хочу создать метод выделения назначьте класс для замены «нормального» класса. Метод вызван, но я не могу прочитать параметры? Кроме того, если я присвою имя класса (addClass) жестко кодировкой, я, кажется, потеряю событие мыши для состояний over и click?jquery plugin custom methods
Код:
(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);
не делаю jQuery (этот) несколько раз. Сохраните его в var. var $ this = $ (this); – redsquare
это хороший совет, спасибо –
Извините ... но в чем разница? Несколько символов для ввода? – Fernando