2011-01-06 3 views
0
(function ($) { 

$.fn.BuildDynamicTable = function (options) { 

    var options = $.extend(defaults, options); 

    return this.each(function() { 

    ... 

    GetUsers(1);   

    ... 

    var GetUsers = function (pageNum) { 
     ...  

    } 

    }); //end 


}; 
})(jQuery); 

Ich denke, versuchen, die GetUsers Methode über den folgenden Code aufzurufen:Aufruf einer Methode in einem jQuery-Plugin von außerhalb des Plugin

var myPlugin = new $.fn.BuildDynamicTable(); 

myPlugin.GetUsers(1); 

Aber das hat nicht funktioniert?

Hilfe?

Antwort

2

In Ihrem Plugin, ich glaube, Ihre Funktion sollte wie folgt aussehen:

var $.fn.GetUsers = function (pageNum) { 
    ...  
} 
+0

@Mark: Dies ist mit einem Verschluss. Die GetUsers-Funktion befindet sich im $ .fn-Namespace, hat aber die Closure - das sind die lokalen Variablen - des umgebenden Codes; in Ihrem Beispiel 'Optionen'. Dadurch können Sie mehrere Funktionen definieren, die alle dieselben privaten globalen Variablen verwenden können. – Hogan

+0

Hinweis Ich rufe GetUsers innerhalb und außerhalb des Plugins auf. Wie soll ich es dann von innen und außen nennen? – Mark

+0

Ich habe diese $ .fn.GetUsers = Funktion (pageNum) {} jetzt wie ich es außerhalb des Plugins aufrufen? var myPlug = new $ .fn.BuildDynamicTable(); myPlug.fn.GetUsers (1); Das hat nicht funktioniert – Mark

0

Ihre Funktion

von außerhalb des Plugin außerhalb des Gültigkeitsbereichs
var GetUsers = function (pageNum) { 
    ...  

} 

ist. Versuchen Sie mit

this.GetUsers = function (pageNum) { 
    ...  

} 

statt.

Weitere Informationen über JavaScript-Bereich here.

+0

Ich versuchte ursprünglich, dies zu verwenden.GetUsers = Funktion (pageNum) aber dann konnte es nicht innerhalb des Plugins aufrufen? – Mark

+0

Wenn Sie es innerhalb des Plugins aufrufen, müssen Sie dieses verwenden. Notation. – Ktash

Verwandte Themen