首页 > 写jquery插件的callback函数

写jquery插件的callback函数

初写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);});

以上只是例子。

【热门文章】
【热门文章】