Какое правило? когда я использую $ (this) и когда достаточно этого? - PullRequest
2 голосов
/ 12 ноября 2009

Я знаю, что $(this) приводит к объекту jQuery, но я часто вижу (особенно в плагинах jQuery) использование return this.whatever каково общее правило?

Спасибо

Ответы [ 7 ]

3 голосов
/ 12 ноября 2009

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

Ответ в том, что это зависит от ситуации. Во многих плагинах вы вызываете метод плагина для объекта jQuery, что делает this уже обернутым в jQuery!

3 голосов
/ 12 ноября 2009

Используйте $(this), если вы хотите использовать функциональность JQuery для 'this'.

Используйте 'this', если вы не хотите использовать функциональность JQuery для 'this'.

2 голосов
/ 12 ноября 2009

$(this) добавляет дополнительный «сахар» JQuery к элементу и затем возвращает его. Таким образом, правило состоит в том, что вам нужно использовать $(this), только если вы хотите вызвать для него методы JQuery, а он еще не был передан через $(..).

1 голос
/ 12 ноября 2009

Зависит от того, к чему относится this.

Внутри функции обработчика события this ссылается на элемент HTML, из которого происходит событие. Для выполнения операций jQuery над элементом вы используете $(this), чтобы обернуть элемент HTML.

this в рамках метода плагина относится к самому объекту выбора jQuery. Кроме того, в плагинах метод jQuery each используется для выполнения функции для каждого элемента в выборе jQuery. Часто так пишутся плагины для предоставления нового метода:

jQuery.fn.alertClasses = function()
{
    // "this" refers to the jQuery object, returned by $(...)
    if(this[0] === undefined)
        return this;

    this.each(function() { 
        // "this" now refers to an HTML element in the jQuery object
        alert(this.className)
    });

    // "this" refers to the jQuery object again
    return this;
}

Короче говоря, все дело в контексте метода. Документация jQuery объясняет эту концепцию всякий раз, когда вы смотрите на методы, которые изменяют значение this.

1 голос
/ 12 ноября 2009

Используйте $(this), когда jQuery предлагает лучший интерфейс для нужной вам функциональности (а это большая часть времени для манипулирования DOM).

Я рекомендую использовать this, когда вам нужно (когда нет эквивалента jQuery), или когда базовый интерфейс проще, например, вызов form.submit() вместо $('form').trigger('submit').

1 голос
/ 12 ноября 2009

Как вы заметили:

$ (this) - возвращает объект jQuery

this - возвращает объект DOM

this.whothing вернет атрибут / функцию объекта DOM

$ 1008 * this
1 голос
/ 12 ноября 2009

Используйте $(this), если вам нужен доступ к вашему объекту как к объекту jQuery. Если вы ссылаетесь на внутренние свойства вашего объекта, для которого вам не нужен jQuery, просто используйте this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...