javascript - 如何将值从 jquery 插件传递到其回调函数

标签 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 来自插件并在回调函数中使用,有什么办法可以做到这一点吗?

谢谢。

最佳答案

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

(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');
})

关于javascript - 如何将值从 jquery 插件传递到其回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21656883/

相关文章:

javascript - Cypress 无法识别我试图通过占位符查找的元素

javascript - Bluebird 中的递归 promise 不返回

javascript - 如何覆盖由 jquery/javascript 设置的 css 高度?

javascript - 单击按钮时删除行

javascript - 调整图像大小以适应 Div 的限制

javascript - 以三列显示帖子?

javascript - 将箭头函数分配给变量后导出与直接导出有什么区别?

javascript - Angular 提供者错误 - 必须定义 $get 工厂方法

javascript - ASP.NET JavaScript - 无效的 JSON 原语

javascript - 显示 html <DIV> 元素的好方法,例如画廊、mooflow、灯箱等