ok am trochę nowych do wtyczek Użyłem wielu z moich projektów, mam również napisane podstawowych wtyczek, które po prostu działają na elementach z opcji:tworzenia jQuery plugin z wieloma funkcjami
(function($){
$.fn.pulse = function(options) {
// Merge passed options with defaults
var opts = jQuery.extend({}, jQuery.fn.pulse.defaults, options);
return this.each(function() {
obj = $(this);
for(var i = 0;i<opts.pulses;i++) {
obj.fadeTo(opts.speed,opts.fadeLow).fadeTo(opts.speed,opts.fadeHigh);
};
// Reset to normal
obj.fadeTo(opts.speed,1);
});
};
// Pulse plugin default options
jQuery.fn.pulse.defaults = {
speed: "slow",
pulses: 2,
fadeLow: 0.2,
fadeHigh: 1
};
})(jQuery);
powyższe działa ok, ale oczywiście wykonuje to jedno zadanie, idealnie chciałbym być w stanie wykonywać wiele zadań w ramach plugin, więc przydałby:
$('#div').myplugin.doThis(options);
$('#div').myplugin.doThat(options;
powodem jest mam dość duży skrypt, który ma różne ajax rozmowy, aby zapisać dane i dane zapytania z bazy danych (przy użyciu zewnętrznego pliku php) Chciałbym ntergrate wszystkie te funkcje do wtyczki, ale nie znam najlepszej struktury do tego celu, ive spojrzał na tylu tutoriali i zasadniczo smażył mój mózg, i jestem zdezorientowany, jak powinienem to zrobić.
jest to tylko kwestia tworzenia nowej funkcji, takich jak:
$.fn.pluginname.dothis = function(options){
return this.each(function() {
//execute code
};
};
żadnych wskazówek dotyczących tego, czy szablon do zaczynaj mi byłoby bardzo pomocne.
na zawsze potrzebuję pomocy !!!
Następny problem:
(function($){
// Can use $ without fear of conflicts
//var gmap3plugin = $.fn.gmap3plugin;
var obj = this; // "this" is the jQuery object
var methods = {
init : function(options){
var lat = $.fn.gmap3plugin.defaults[lat];
var lng = $.fn.gmap3plugin.defaults[lng];
alert('init'+' lat:'+lat+' --- lng:'+lng);
},
show : function() { },
hide : function() { },
update : function(content) { }
};
$.fn.gmap3plugin = function(method){
// Method calling logic
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.tooltip');
};
};
$.fn.gmap3plugin.defaults = {
mapdiv :'#mapdiv',
region : 'uk',
lat : 53.4807125,
lng : -2.2343765
};
})(jQuery);
to działa i dostaje właściwą funkcję, która jest przekazywana, ale w jaki sposób mogę uzyskać dostęp do wartości w $ .fn.gmap3plugin.defaults kod w moje metody init zwraca niezdefiniowana dla łac i LNG
init : function(options){
var lat = $.fn.gmap3plugin.defaults[lat];
var lng = $.fn.gmap3plugin.defaults[lng];
alert('init'+' lat:'+lat+' --- lng:'+lng);
},
lub nie mogę uzyskać dostępu do danych THHE w $ .fn.gmap3plugin.defaults z funkcji ???
hmm ok, myślę, że architektura wtyczek jqueryui wspomina o czymś takim, ja czytałem, ale to po prostu pozostawiło mnie w stanie zamieszania !!jakiś dobry tutorial, do którego możesz skierować mnie? –
Spójrz na edycję, którą zrobiłem – Samuel
dzięki samuelowi, że pójdę i zobaczę, gdzie dostaję, to na pewno wygląda na bardziej sensowną niż inne artykuły, które przeczytałem. –