hi,
ich will ein jquery plugin bauen, welches mir public functionen anbietet.
also ein zugriff in der Art:
Habe diese Artikel als vorlage genommen:
ajax - Public functions from within a jQuery plugin - Stack Overflow
Expanding the jQuery Plugin Development Pattern Scriptble
hier mal mein Code:
plugin:
und der Aufruf:
da ist mein Problem ja schon ersichtlich:
myPlugin.bar();//TypeError: 'undefined' is not a function (evaluating 'myPlugin.bar()')
$.fn.myPlugin.foo(); funktioniert zwar, aber damit greife ich ja das plugin zu.
aber wenn ich 2 instanzen erzeugen will:
var myPlugin1 = $('#wrapper').myPlugin();
var myPlugin2 = $('#was_anderes').myPlugin();
bringt mir $.fn.myPlugin.foo(); ja nichts,
ich will ja per
myPlugin1.bar();
myPlugin2.bar();
kann mir jemand meinen (Denk-)Fehler aufzeigen?
lg & THX
ich will ein jquery plugin bauen, welches mir public functionen anbietet.
also ein zugriff in der Art:
PHP-Code:
var myPlugin = $('#wrapper').myPlugin();
myPlugin.bar()
ajax - Public functions from within a jQuery plugin - Stack Overflow
Expanding the jQuery Plugin Development Pattern Scriptble
hier mal mein Code:
plugin:
PHP-Code:
(function($){
var defaultOptions = {
action: false,
debug: false
}
$.fn.myPlugin = function(options){
// extend default options with overrides
var private_var = "private var";
var opts = $.extend({}, defaultOptions, options);
return this.each(function() {
private_function();
});
}
var private_function = function() {
alert('private_function');
};
// public methods
this.bar = function() {//TypeError: 'undefined' is not a function (evaluating 'myPlugin.bar()')
alert('in bar');
};
$.fn.myPlugin.foo = function() {
alert('in foo');
}
})(jQuery);
PHP-Code:
var myPlugin = $('#wrapper').myPlugin();
$.fn.myPlugin.foo();
myPlugin.bar();//TypeError: 'undefined' is not a function (evaluating 'myPlugin.bar()')
myPlugin.bar();//TypeError: 'undefined' is not a function (evaluating 'myPlugin.bar()')
$.fn.myPlugin.foo(); funktioniert zwar, aber damit greife ich ja das plugin zu.
aber wenn ich 2 instanzen erzeugen will:
var myPlugin1 = $('#wrapper').myPlugin();
var myPlugin2 = $('#was_anderes').myPlugin();
bringt mir $.fn.myPlugin.foo(); ja nichts,
ich will ja per
myPlugin1.bar();
myPlugin2.bar();
kann mir jemand meinen (Denk-)Fehler aufzeigen?
lg & THX
Kommentar