Вопрос по javascript, jquery – Как добавить новые методы в объект jQuery?
Есть ли способ добавить методы к объектам jQuery?
Например, у меня есть объект jQuery
a = $('div')
Мне бы хотелось, чтобы каждый объект, который был назначен таким образом, имел определенный метод (doSomething()
) так что я мог бы вызвать это как
a = $('.foo')
a.doSomething()
b = $('.bar')
b.doSomething()
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');
});
}
Я бы сказал, что это повлияет налюбо jQuery объект создан.
.css()
метод не очень хороший пример, здесь используется.each()
бессмысленно.
@ jAndy Обновленный ответ. Не могли бы вы проверить и подтвердить, правильно ли это сейчас.
Вы должны добавить свою функцию к$.fn
пространство имен. Обратите внимание, что внутри функции,this
будет ссылаться на объект jQuery, а не на объект DOM.
$.fn.doSomething = function () {
this.css('color', 'red');
};
$('#retk').doSomething();
Пожалуйста, прочитайте о написание плагинов jQuery для получения дополнительных рекомендаций.