访问jQuery对象

时间:2009-10-13 16:45:18

标签: jquery plugins

我知道这听起来很简单,但我是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 ... });
    });

现在我想在我的代码中创建的对象“fcbkcomplete”的实例上调用公共方法addItem()(例如,当我单击按钮或onTimer事件时)。但我不知道如何访问它。我尝试这样做,但它不起作用:

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

Firefox显示错误:“fcel.addItem不是函数”。

...感谢名单

3 个答案:

答案 0 :(得分:0)

您必须将元素添加到用于控件的列表元素中(控件使用输入字段和元素列表)。

因此,您应该将元素添加到UL。

(类似于$('#myUlId').append('<li>Hello</li>');

干杯

答案 1 :(得分:0)

从你的例子看,fcbkcomplete看起来像是返回一个jquery对象(不是DOM元素),因为这就是this.each()返回的内容。

addItem方法被添加到单个元素中(每个函数中的“this”指的是单个元素)。

因此,为了调用addItem,您必须引用单个元素。 尝试:

fcel[0].addItem('Test1','Test1')

答案 2 :(得分:-1)

jQuery允许您访问这样的变量:

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

只需将变量名称粘贴在那里,不带任何引号。似的。