初写jquery插件很多不太明白,
//写插件
;(function($){
$.fn.xtab = function(setting,callback){
var abc = 123456;
var setting = setting;
var abcFunc = function(){alert(123456)};
var callback = function(){};
}
})(jQuery);
//使用插件
$(".element").xtab({
setting: {},
callback: function(){cosle.log(abc)}
})
要怎么样写,使用插件时候的callback才能得到插件内部的变量和方法
应该这么调用吧?
$(".element").xtab({}, function() {
cosle.log(abc);
})
你这代码看着好诡异。方法内又重新复制变量,那还要参数来干嘛。ps:好像还打错api
单词哦
//写插件
;(function($){
$.fn.xtab = function(obj){//看你下面调用时传的参数是对象
var abc = 123456;
obj.callback(abc);
}
})(jQuery);
//使用插件
$(".element").xtab({
setting: {},
callback: function(a){console.log(a)}
})
根据你的插件定义方式
$.fn.xtab = function(setting,callback)
xtab 方法应该可以接收两个参数:setting (配置参数) 和 callback (回调函数)。
因此你应该如此调用:
$(".element").xtab({}, function(){cosle.log('this is callback');});
如果你想要在 callback 中使用 setting 或者 插件中的其他参数和方法,则需要在callback 调用的时候,将参数传入:
javascript
$.fn.xtab = function(setting, callback){ var $this = $(this); // 将配置参数缓存在当前 jquery 对象上 $this.data('xtab-setting', setting); $this.data('xtab-callback', callback); // 假设点击时,调用 callback,并且传入配置参数 $this.click(function(){ callback($this.data('xtab-setting').value); }); } //调用: $('.div').xtab({value:'test'}, function(val){console.info(val);});
以上只是例子。