Доступ к объекту jQuery - PullRequest
       35

Доступ к объекту jQuery

1 голос
/ 13 октября 2009

Я знаю, это звучит довольно банально, но я новичок в jQuery ... Я использую этот плагин: http://www.emposha.com/javascript/fcbkcomplete.html

Его исходный код содержит:

jQuery(function ($) {
    $.fn.fcbkcomplete = function (opt) {
        return this.each(function () {

            /// ...
            /// ...implementation deleted...
            /// ...

            // public method to add new item
            this.addItem = function (title, value) {
                addItem(title, value);
            }

            return this;
        });
    };
});

Я знаю, как использовать этот элемент в моем коде, и он прекрасно работает:

    $(document).ready(function() 
    {        
        $("#select2").fcbkcomplete({ ... options deleted ... });
    });

Теперь я хочу вызвать открытый метод addItem () для экземпляра объекта "fcbkcomplete", созданного в моем коде (например, когда я нажимаю кнопку или событие onTimer). Но я не знаю, как получить к нему доступ. Я пытался сделать это таким образом, но это не работает:

  var fcel = $("#select2").fcbkcomplete({ ... options deleted ... });
  fcel.addItem('Test1', 'Test1');

Firefox показывает ошибку: «fcel.addItem не является функцией».

Thanx ...

Ответы [ 3 ]

0 голосов
/ 13 октября 2009

jQuery позволяет вам получить доступ к переменным следующим образом:

$(fcel).addItem('Test1', 'Test1');

Просто вставьте туда свою переменную без кавычек. Presto.

0 голосов
/ 13 октября 2009

В вашем примере это выглядит так, как будто fcbkcomplete возвращает объект jquery (не элемент DOM), поскольку именно это возвращает this.each ().

Метод addItem добавляется к отдельным элементам («this» в каждой функции относится к отдельному элементу).

Таким образом, чтобы вызвать addItem, вам нужно обратиться к отдельному элементу. Попробуйте:

fcel[0].addItem('Test1','Test1')
0 голосов
/ 13 октября 2009

Необходимо добавить элементы в элемент списка, используемый для элемента управления (элемент управления использует поле ввода и список элементов).

Поэтому вы должны добавить элементы в UL.

(с чем-то вроде $('#myUlId').append('<li>Hello</li>');)

Приветствия

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