如何将值从jquery插件传递给其回调函数

时间:2014-02-09 08:21:57

标签: javascript jquery

我创建了一个简单的Jquery函数,它接受了一些参数并得出了某种结果。我需要能够将此结果传递给jquery插件的回调函数。

(function( $ ){
   $.fn.newPlugin= function(params,CBfunction){

    //do some stuff;
    var result = "something";
    CBfunction.call(this);

}; 
})( jQuery );

当我使用插件时,我希望能够将插件的结果解析为回调函数:

$(elm).newPlugin(params, function(params, this.result){
  //this.resullt comes from the plugin ('something');

})

这可能吗?

例如,查看变量" myVar":

(function( $ ){
   $.fn.newPlugin= function(a,b,CBfunction){

    myVar = a+b;

    CBfunction.call(this);

}; 
})( jQuery );

我使用插件:

$(elm).newPlugin(a,b,function(){
  alert("the result of "+a+" + "+b+" is:"+myVar);
})

myVar来自插件并在回调函数中使用,有没有办法做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

为什么不在调用回调时传递结果?像这样:

(function( $ ){
   $.fn.newPlugin= function(params,CBfunction){

    //do some stuff;
    var result = "something";
    CBfunction.call(this, result);
};
})(jQuery);

然后你需要修改你的调用看起来像这样(顺便说一下,注意我从回调中删除了'param'参数,因为只传递了一个参数):

$(elm).newPlugin(params, function(result){
  // result comes from the plugin ('something');
})