Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
将参数传递给javascript回调函数_Javascript - Fatal编程技术网

将参数传递给javascript回调函数

将参数传递给javascript回调函数,javascript,Javascript,我一直在尝试解决如何将其他参数传递给javascript回调函数 function deleteItem(itemId) { selectpage.ajaxCheck(itemId, function() { ajaxcheck_Callback(itemId); }); } function ajaxCheck_Callback(response) { alert(response); } 在类似的帖子中,用户已经成功地使用了匿名功能(这些对我来说是新的,所以我可能一直在做

我一直在尝试解决如何将其他参数传递给javascript回调函数

function deleteItem(itemId) {
    selectpage.ajaxCheck(itemId, function() { ajaxcheck_Callback(itemId); });
}

function ajaxCheck_Callback(response)
{
    alert(response);
}
在类似的帖子中,用户已经成功地使用了匿名功能(这些对我来说是新的,所以我可能一直在做错事),但我就是不能让他们开火

下面是我现在拥有的,我需要能够将itemId传递给函数“ajaxCheck_Callback”以及响应

希望这是有意义的

谢谢你的帮助

function delete(itemId)
{
  selectpage.ajaxCheck(itemId, ajaxCheck_Callback);
}


Function ajaxCheck_Callback(response)

{
  alert(response);
  alert(itemId);
}
谢谢你们的帮助。我现在在警报中未定义,而以前这是正确的警报

function delete(itemId)
{
  selectpage.ajaxCheck(itemid, function () {ajaxCheck_Callback(itemid); });
}


function ajaxCheck_Callback(response)

{
  alert(response);
  alert(itemId);
}

创建一个匿名函数,该函数调用回调函数并提供所需的参数

function deleteItemById(itemId)
{
  selectpage.ajaxCheck(itemId, function() { ajaxCheck_Callback(itemId); });
}
匿名函数将在
itemId
上创建一个闭包,因此即使最初的delete调用早已结束,仍然可以访问该值


为了完整起见,还要注意,
delete
在JavaScript中是一个保留字;您需要将此函数命名为其他函数。

如您的问题所述,您可以使用匿名函数:

function deleteItem(itemId)
{
  selectpage.ajaxCheck(itemId, function ()
  {
      ajaxCheck_Callback(itemId);
  });
}

// Note, lowercase 'f' in 'function'
function ajaxCheck_Callback(response)
{
  alert(response);
}
也可以使用命名函数完成,您可能会发现该函数更具可读性:

function deleteItem(itemId)
{
    function onAjaxCheck()
    {
        ajaxCheck_Callback(itemId);
    }

  selectpage.ajaxCheck(itemId, onAjaxCheck);
}


N.B.,因此这不是有效的函数名。

通常的做法是使用匿名函数

function deleteItem(itemId) {
    selectpage.ajaxCheck(itemId, function() { ajaxcheck_Callback(itemId); });
}

function ajaxCheck_Callback(response)
{
    alert(response);
}

小心你的语法,里面有一些错误。
function
关键字的大小写为
f
,您不能将名为
delete
的函数作为保留关键字。

什么是
selectpage.ajaxCheck
?不要将
delete
作为函数名。(+1)谢谢你。这是我以前尝试过的,但似乎不起作用。我最初发布的内容为响应提供了一个成功的警报。当我加入匿名函数时,我会收到一个未定义的警报以供响应。请发布您的确切代码(如果可能,请在中重现问题),谢谢。我已经用当前代码更新了原始问题。@JIbber4568将您的函数
delete
重命名为其他函数。