使用ajax中的参数调用onreadystatechange回调函数

时间:2013-03-19 09:35:25

标签: javascript jquery ajax

我在SOF中发现了一个问题..但是没有找到解决方案..

这是我的代码..

 if (mefofftasksxmlhttp!=null)
        {
            mefofftasksxmlhttp.onreadystatechange=sasi_ready(taskId);
            mefofftasksxmlhttp.open("GET",url,true);
            mefofftasksxmlhttp.send(null);
        }

回调功能

function sasi_ready(tskId)
        {
            if (mefofftasksxmlhttp.readyState==4)
            {
               if (mefofftasksxmlhttp.status==200)
                {
                    alert('Task Moved to completed Tasks');
                    $('#'+tskId).hide();
                }
                else
                {
                    alert("Problem retrieving XML data");
                }
            }
        }

当我在回调函数中传递一个参数时,这段代码不允许我进入回调..但当我删除参数..工作正常...

我哪里出错了?

1 个答案:

答案 0 :(得分:2)

正如@ Beetroot-Beetroot已经说过:你需要将函数引用传递给onreadystatechange。如果要传递参数,只要此函数返回函数引用,您仍然可以使用此参数调用函数

function sasi_ready(tskId) {
   return function() {
        if (mefofftasksxmlhttp.readyState==4)
        {
           if (mefofftasksxmlhttp.status==200)
            {
                alert('Task Moved to completed Tasks');
                $('#'+tskId).hide();
            }
            else
            {
                alert("Problem retrieving XML data");
            }
        }
   }
}