Вопрос по javascript, jquery – Как добавить новые методы в объект jQuery?

16

Есть ли способ добавить методы к объектам jQuery?

Например, у меня есть объект jQuery

a = $('div')

Мне бы хотелось, чтобы каждый объект, который был назначен таким образом, имел определенный метод (doSomething()) так что я мог бы вызвать это как

a = $('.foo')
a.doSomething()

b = $('.bar')
b.doSomething()

Ваш Ответ

2   ответа
1

добавь как

$.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 объект создан. jAndy
.css() метод не очень хороший пример, здесь используется.each() бессмысленно. kapa
@ jAndy Обновленный ответ. Не могли бы вы проверить и подтвердить, правильно ли это сейчас. Prasenjit Kumar Nag
18

Вы должны добавить свою функцию к$.fn пространство имен. Обратите внимание, что внутри функции,this будет ссылаться на объект jQuery, а не на объект DOM.

$.fn.doSomething = function () {
    this.css('color', 'red');
};

$('#retk').doSomething();

jsFiddle Demo

Пожалуйста, прочитайте о написание плагинов jQuery для получения дополнительных рекомендаций.

Похожие вопросы