Как добавить новые методы в объект jQuery?
Есть ли способ добавить методы к объектам jQuery?
Например, у меня есть объект jQuery
a = $('div')
Мне бы хотелось, чтобы каждый объект, который был назначен таким образом, имел бы особый метод (doSomething()
), поэтому я мог бы вызвать его как
a = $('.foo')
a.doSomething()
b = $('.bar')
b.doSomething()
Ответы
Ответ 1
Вы должны добавить свою функцию в пространство имен $.fn
. Обратите внимание, что внутри функции this
будет ссылаться на объект jQuery, а не на объект DOM.
$.fn.doSomething = function () {
this.css('color', 'red');
};
$('#retk').doSomething();
jsFiddle Demo
Прочитайте о написании плагинов jQuery для получения дополнительных рекомендаций.
Ответ 2
добавить его как
$.fn.doSomething = function(data){
// data is the argument passed to doSomething
return this.each(function(){
var elem = $(this);
//perform operation on elem
// like to change background color use
elem.css('background-color','red');
});
}