2016-06-13 2 views
3

У меня есть следующий код в плагин JQuery:Jquery Plugin: Добавить метод с .each

$.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 (это, 'myForm', myForm);'] (https://api.jquery.com/jQuery.data/) также должно работать. - Проблема с '$ .data (myForm, 'myForm')' заключается в том, что элемент не предоставляется для присоединения 'myForm' to. –

Смежные вопросы