javascript - 将函数作为参数传递给javascript中的另一个函数

标签 javascript jquery closures

我想在 javascript 中创建一个 API 系统(在单个对象内),所有这些都源于 jQuery 的 ajax 函数,但我希望能够像这样传递一个覆盖“成功”函数来触发:

function Eidos(){

    this.api = function(data, success){
        $.ajax({
            type: 'POST', 
            url: '/api',
            data: data,
            success: function(rData){
                return rData;
            }
        })
    };

    this.refreshInfo = function(id, success){
            log.info('refreshed page id:  '+ id);
            return this.api({'command': 'refresh', 'pageid': id}, success);
    }


};

在这个例子中,我只想“刷新”信息(拉入新的文本数据或你有什么)。我已经有一个服务器端页面设置。

我会这样调用它:

$('.refresh').click(function(){
        $("#myModal").modal('show');
        var id = $(this).data('ei');
        var api = eidos.refreshInfo(id, function(){
                $("#myModal").modal('hide');
                });
        return false;
    });

显然这行不通(顺便说一句,该对象已经通过 var eidos = new Eidos(); 创建),但是,不知道如何实现它。我希望 success: 函数在不同的页面上有不同的行为,所以我需要一个覆盖,但我不确定如何在这里工作。

最佳答案

尝试改变

success: function(rData){
   return rData;
}

success: success

您目前没有调用(甚至没有使用)success 参数。

关于javascript - 将函数作为参数传递给javascript中的另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12197830/

相关文章:

javascript - Vue.js 中的一种全局数据结构

javascript - clearInterval - 出了点问题

javascript - Typescript 模块导入的相对路径指向错误的目录

javascript - 为什么我的 Jquery 轮播不会停在最后一张图片上?

java - 在 Groovy SwingBuilder 中,如何将闭包附加到选择单元格时触发的 JTable?

javascript - 如何将我自己的 jQuery 版本与浏览器化模块一起使用

jQuery 事件 : Detect changes to the html/text of a div

单击触发器并关闭同一按钮时,JQuery 动画并打开 div

jquery - 如何停止 jquery 悬停时的额外间距?

drupal-7 - 将 HTML 添加到 Drupal 闭包?