2013-11-02 2 views
1

В JQuery, когда я звоню:Автоматически возвращать JQuery объект

$("selector").a_function(function(){ 
    this.toggleClass("a-class"); 
} 

Я сказал, что this имеет определенный тип, и не имеет функции JQuery, доступной ему. Проблема в том, что я не получаю объекты jQuery, возвращенные мне. Способ, которым я обойду это:

jquery_object = jQuery(this); 

каждый раз. Я думал, что $() эквивалентен вызову jQuery и что я должен получить объект jQuery.

Это нормально? Что я здесь делаю неправильно?

+1

Это настройка по умолчанию jQuery, если вы хотите jQuery Object, вы должны получить $ (this) –

+1

'this' является элементом DOM, который представляет объект jQuery – charlietfl

ответ

1

Вы должны использовать $(this) вместо this.

В случае, указанном вами this, не относится к элементу DOM.

Обернув его в стандартную функцию селектора JQuery, вы фактически вызываете элемент DOM.

Я использую это много для обработчиков кликов.

$('a').click(function(e) { $(this).toggleClass('a-class'); });

Довольно много любая функция JQuery, которая вызывается через селектор и имеет функцию обратного вызова будет использовать этот формат.

Смежные вопросы