Как получить свойства объекта в методе, внутри jQuery?

Немного не понял как получить доступ к свойству объекта, ведь внутри jquery, this ссылается на сам объект jquery?

function Router (){

        // Элемент события
        this.element = null;

        // К какому модулю обращаться
        this.module = null;

        // ответ сервера
        this.data = null;

        // обращаться по адресу
        this.url = '/';

        // Статус присутствия кеша
        this.cache = false;

        // Время хранения кеша
        this.time = 3600;

        // Событие
        this.eventDOM = 'click';

        // Класс элемента события
        this.classDOM = '';

        // Объект ajax loading
        this.nanobar = new Nanobar({
            bg: '#F4485D',
            target: document.getElementById('myDivId')
        });

        this.run = function () { };

        this.eventAjax = function (){

            // Тут произвольный код касающийся события всего запроса
            $('body').on(this.eventDOM, this.classDOM, function (event){
                
                //  Как тут получить доступ к свойству объекта, например this.nanobar? this ведь ссылается на $('body').on()

            });

        };
 

    }
  • Вопрос задан
  • 3372 просмотра
Решения вопроса 1
5angel
@5angel
Фронтенд-лид
Все очень просто. Нужно сохранить this в другой переменной, обычно ее именуют that.

var that = this;

this.eventAjax = function (){
  $('body').on(this.eventDOM, this.classDOM, function (event){
    console.log(that.nanobar);
    $('body').on()
  });
};

После чего обращаемся к nanobar через that.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Если я правильно Вас понял, то Вам нужен такой синтаксис:
$(this)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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