我一直在努力研究如何将其他参数传递给javascript回调函数。
在类似的帖子中,用户已成功使用匿名功能(这些对我来说是新的,所以我可能一直在做错了)但我无法解决它们。
以下是我现在所拥有的,我需要能够将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);
}
答案 0 :(得分:12)
通常采用的方式是使用匿名函数。
function deleteItem(itemId) {
selectpage.ajaxCheck(itemId, function() { ajaxcheck_Callback(itemId); });
}
function ajaxCheck_Callback(response)
{
alert(response);
}
小心你的语法,那里有一些错误。 function
关键字有一个小写f
,你不能拥有一个名为delete
的函数,这是一个保留关键字。
答案 1 :(得分:3)
创建一个匿名函数,该函数调用您的回调,并提供所需的参数。
function deleteItemById(itemId)
{
selectpage.ajaxCheck(itemId, function() { ajaxCheck_Callback(itemId); });
}
匿名函数将在itemId
上创建一个闭包,因此即使在最初的delete调用已经结束之后,它仍然可以访问此值。
为了完整性,还要注意delete
是JavaScript中的保留字;你需要将此功能命名为其他功能。
答案 2 :(得分:3)
正如您的问题所提到的,您可以使用匿名函数来执行此操作:
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。 as @Xeon06 points out,delete
is a reserved word,因此这不是有效的函数名称。