1
Я пытаюсь создать простой плагин, как этогоJQuery - Ответная неудача, если нет параметра опции
(function($) {
$.fn.gpSlideOut = function(options, callback) {
// default options - these are used when no others are specified
$.fn.gpSlideOut.defaults = {
fadeToColour: "#ffffb3",
fadeToColourSpeed: 500,
slideUpSpeed: 400
};
// build main options before element iteration
var o = $.extend({}, $.fn.gpSlideOut.defaults, options);
this.each(function() {
$(this)
.animate({backgroundColor: o.fadeToColour},o.fadeToColourSpeed)
.slideUp(o.SlideUpSpeed, function(){
if (typeof callback == 'function') { // make sure the callback is a function
callback.call(this); // brings the scope to the callback
}
});
});
return this;
};
// invoke the function we just created passing it the jQuery object
})(jQuery);
Путаница у меня есть, что обычно на плагин JQuery вы можете назвать что-то вроде этого:
$(this_moveable_item).gpSlideOut(function() {
// Do stuff
});
Без параметра опций, но он пропускает обратный вызов, если я делаю это так, поэтому я должен всегда иметь
var options = {}
$(this_moveable_item).gpSlideOut(options, function() {
// Do stuff
});
Даже если я хочу использовать настройки по умолчанию.
Есть ли способ убедиться, что функция обратного вызова вызвана, есть ли параметр параметров?
Cheers.
спасибо: если (обратный вызов == неопределенная) { \t \t \t \t \t \t если ($ .isFunction (опции)) { \t \t \t \t \t \t \t options.call (это); \t \t \t \t \t \t} \t \t \t \t \t} \t \t \t \t \t еще { \t \t \t \t \t \t если ($ .isFunction (обратный вызов)) { \t \t \t \t \t \t \t \t callback.call (this); \t \t \t \t \t \t} \t \t \t \t \t} – Glo