2016-06-13 56 views
3

我有一個jQuery插件,下面的代碼: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 

我在這裏做錯了什麼?

回答

4

設定data這樣的: -

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

這工作。不得不分配'$('#test')。myForm()',這就實現了。 –

+1

@PepperedLemons ['$ .data(this,'myForm',myForm);'](https://api.jquery.com/jQuery.data/)也應該有效。 - $'.data(myForm,'myForm')'的問題是不提供該元素來附加'myForm'。 –