У меня есть плагин для слайдера изображений, для которого я хочу расширить некоторые функции. Я хотел бы сделать так, чтобы вы могли вызывать следующий метод, вызывая следующее, как это делает пользовательский интерфейс jQuery:
$("#elemID").imageSlider("next");
Я в растерянности от того, как это сделать. Вот то, что я имею до сих пор с некоторыми кишками, отсутствующими в космосе.
(function($) {
$.fn.imageSlider = function (options) {
var options = $.extend({}, $.fn.imageSlider.defaults, options),
obj = $(this), // Set it here so we only look for it once
objID = obj.attr('id'),
sliderName = objID + '_slider',
total = 0,
counterID = objID + '_ct';
// Private Methods
var initialize = function () {
if (options.jsonObject === null) {
processAjax();
} else {
process(options.jsonObject);
}
return obj;
}
// Executes an AJAX call
var processAjax = function () {
$.ajax({
url: options.jsonScript,
type: 'GET',
data: options.ajaxData,
dataType: 'json',
success: function (data) {
process(data);
},
complete: function (jqXHR, textStatus) {
if (options.onComplete !== $.noop) {
options.onComplete.call();
}
}
});
}
var process = function (data) {
// Generates the HTML
}
var changeImage = function (me, target, ops) {
//rotate the image
}
$.fn.imageSlider.next = function (elemID) {
// Currently how I call next on the slider
}
return initialize();
}
$.fn.imageSlider.defaults = {
// options go here
}
})(jQuery)