Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取错误回调不是一种条件下的函数_Jquery_Callback - Fatal编程技术网

Jquery 获取错误回调不是一种条件下的函数

Jquery 获取错误回调不是一种条件下的函数,jquery,callback,Jquery,Callback,我有两个这样的函数 $("body").on("click", "#btnEdit", function (e) { TransactionId = $(this).closest("div").find('#SearchItemID').text(); EditorDuplicate(TransactionId); }); $("body").on("click", "#btnDuplicate", function (e) { TransactionId = $(

我有两个这样的函数

$("body").on("click", "#btnEdit", function (e) {
    TransactionId = $(this).closest("div").find('#SearchItemID').text();

    EditorDuplicate(TransactionId);
});

$("body").on("click", "#btnDuplicate", function (e) {
    TransactionId = $(this).closest("div").find('#SearchItemID').text();

    EditorDuplicate(TransactionId);
    GetnextItemCode();
})
正如您在我的第一个函数中所看到的,我只调用了
EditorDuplicate
函数,但在第二个函数中,我在执行first complete之后调用了另一个函数

但是为了在
EditorDuplicate
函数之后加载
GetnextItemCode
函数,我添加了回调函数。现在看起来是这样的:

$("body").on("click", "#btnTransactionEdit", function (e) {
    TransactionId = $(this).closest("div").find('#SearchItemID').text();
    EditorDuplicate(TransactionId);
});

$("body").on("click", "#btnDuplicate", function (e) {
    TransactionId = $(this).closest("div").find('#SearchItemID').text();

    EditorDuplicate(TransactionId, function () {
        GetnextItemCode();
    });

    //EditorDuplicate(TransactionId);
    //GetnextItemCode();
})
EditorDuplicate功能:

function EditorDuplicate(TransactionId, callback) {

    // other codes

    callback();
}
function EditorDuplicate(TransactionId, callback) {
    // your code

    if (typeof callback === 'function') {
      callback();
    }
}
现在单击
#btndupplicate
效果很好,但是当单击
#btnEdit
时,我得到了错误

未捕获类型错误:回调不是函数

为什么呢?我该如何纠正这一点

注意: 并且函数仍然没有一个接一个地运行,
GetnextItemCode
在另一个完成之前执行
EditorDuplicate
函数有几行代码,其中
GetnextItemCode
函数只有几行

请查看代码段中的错误

//编辑按钮
$(“body”)。在(“click”、“#btnEdit”,函数(){
var TransactionId=$('#SearchItemID').text();
编辑副本(事务ID);
});
//复制按钮
$(“body”)。在(“单击”,“复制”,函数(){
var TransactionId=$('#SearchItemID').text();
EditorDuplicate(TransactionId,函数(){
GetnextItemCode();
});
});
函数EditorDuplicate(TransactionId,回调){
警报(“编辑副本”);
//其他代码
回调();
}
函数GetnextItemCode(){
警报(“GetnextItemCode”)
}



搜索Id:
2
在函数中,首先需要检查
回调
是否实际上是一个函数:

function EditorDuplicate(TransactionId, callback) {

    // other codes

    callback();
}
function EditorDuplicate(TransactionId, callback) {
    // your code

    if (typeof callback === 'function') {
      callback();
    }
}
这是因为
回调
在未在此调用中传递时变为
未定义

EditorDuplicate(TransactionId);
试图调用未定义的
将抛出一个错误。

函数EditorDuplicate(TransactionId,callback){ //你的代码

if (callback) {
  callback();
}

}

您可以向我们展示您的HTML代码,或者最好使用SO为我们提供一个示例输出snippet@alimbaronia请查看添加的代码段