jQuery插件:使用.each添加方法

3

我在一个jQuery插件中有以下代码:

$.fn.myForm = function() {
    return this.each(function() {
        var myForm = new MyForm(this);

        $.data(myForm, 'myForm');
    });
};

我认为这样做会使我能够访问myForm的内部函数,例如getForm

var MyForm = function() {
   //...
   function getForm() {
       return 'Hi';
   }
}

但是当我尝试从插件外部访问myForm时,我会得到undefined

$('#test').myForm();
$('#test').data('myForm')
> undefined

这里我做错了什么?
1个回答

4

将您的数据设置为以下内容:

$(this).data('myForm', myForm);

成功了。必须分配 $('#test').myForm() ,然后就搞定了。 - Soatl
1
@PepperedLemons $.data(this, 'myForm', myForm); 也可以工作。- $.data(myForm, 'myForm') 的问题在于没有提供元素来附加 myForm - Jonathan Lonowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接