我正在尝试制作一个插件(来自我拥有的其他代码),但我无法让选项部分工作D:
插件(目前为止):
(function($){
$.fn.scBox = function(options){
var $opts = $.extend($.fn.scBox.defaults, options);
$.fn.scBox.defaults = {
start: 40,
//i: fn.scBox.defaults.start,
width: 200,
height: 50,
min: 0,
step: 10,
fontSize: 15,
textColor: "#fff",
bgColor: "#000",
slideColor: "#ff0000"
}
console.log($.fn.scBox.defaults);
}
})(jQuery);
当我尝试通过$.scBox();
调用它时,我收到此错误:Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method 'scBox'
我只是想让它记录我给它的选项D:
答案 0 :(得分:2)
致电$.fn.scBox()
,而不是$.scBox()
。这在fiddle中得到了证明,其代码粘贴在下面。
(function($){
$.fn.scBox = function(options){
$.fn.scBox.defaults = {
start: 40,
//i: fn.scBox.defaults.start,
width: 200,
height: 50,
min: 0,
step: 10,
fontSize: 15,
textColor: "#fff",
bgColor: "#000",
slideColor: "#ff0000"
}
var $opts = $.extend($.fn.scBox.defaults, options);
console.log($opts);
}
$.fn.scBox();
})(jQuery);
答案 1 :(得分:1)
$.fn.paginator = function(options){
var defaults = {
items_per_page : 10,
num_page_links_to_display : 4,
start_page : 1,
total_items : 20,
label_first : 'First',
label_prev : 'Prev',
label_next : 'Next',
label_last : 'Last',
show_first_last : true,
onChange : function(){return false;}
};
var options = $.extend({}, $.fn.paginator.defaults, options);
return this.each(function(){
//Code in here
});
};
这是我制作的插件的一部分。我希望它有所帮助!请注意,在声明de 默认值var
后调用 $ .extend答案 2 :(得分:1)
在jQuery对象上调用jQuery插件。你不应该直接打电话给他们。你应该在jQuery对象上调用它。
$('#myElement').scBox();
此外,您在宣布之前在$.extend
上致电$.fn.scBox.defaults
。
$.fn.scBox.defaults = {
start: 40,
//i: fn.scBox.defaults.start,
width: 200,
height: 50,
min: 0,
step: 10,
fontSize: 15,
textColor: "#fff",
bgColor: "#000",
slideColor: "#ff0000"
}
var $opts = $.extend($.fn.scBox.defaults, options);
注意:$.extend
修改作为第一个参数传递的对象(它也返回它)。因此,您不需要var $opts =
:
$.extend($.fn.scBox.defaults, options);
console.log($.fn.scBox.defaults);
或者,您可以这样做:
var $opts = $.extend({}, $.fn.scBox.defaults, options);
console.log($opts);