Область действия элемента this в плагинах jquery - PullRequest
1 голос
/ 26 марта 2012

Я пытаюсь написать плагин jQuery, чтобы автоматизировать заполнение полей выбора, но я спотыкаюсь при использовании ключевого слова this в функции «each».Код выглядит следующим образом:

(function($) { 
    $.fn.addOptionsTable2 = function() {        
    options = {
            values : text [...]
        };
        $.each(options, function(val,text) {
            this.append(
              $('<option></option>').val(val).html(text)
        );
    });
  }
})(jQuery); 

Кажется, это не работает, и я считаю, что проблема заключается в ссылке "это".Как я могу заставить это работать, а также что означает «это» в моем коде?

1 Ответ

3 голосов
/ 26 марта 2012

$.each устанавливает this для текущего объекта (для цикла).

Попробуйте это:

    var that = this;

    $.each(options, function(val,text) {
        that.append(
          $('<option></option>').val(val).html(text)
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...