javascript - $.post().success();的success自定义函数怎么传参数?
伊谢尔伦
伊谢尔伦 2017-04-10 16:43:10
[JavaScript讨论组]

原来功能是,圈出来的是参数,

想改成下面的这样


这个参数不知道怎么传进去了...
应该怎么写呀

dellaa=function(thisItem){

alert(data.check);
if(data.check==1){
    //alert("删除成功");
    $(thisItem).parent().parent().parent().remove();       //删除item
    showmsg(id+"删除成功");
}else{
    //alert("删除失败");
}
                        

}

Items.prototype.ajaxComm=function (obj,traget,query) {

   $(obj).each(function(){
                $(this).click(function(){
                    var id=$(this).parent().parent().parent().attr("id");       //获取ID
                    //console.log(id);
                    target=window.HOST_URL+traget;//"/Home/items/"+actionname
                    console.log(obj,target);
                    //alert(window.HOST_URL);
                    //var query={};                      //定义键值对(数组)
                    query["id"]=id;                      //定义键值对
                    var thisItem=this;
                    $.post(target,query).success(dellaa);

                });
    });

}

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
高洛峰

要实现传参数的话,
你可以利用闭包

dellaa=function(data,thisItem){
    alert(data.check);
    if(data.check==1){
        //alert("删除成功");
        $(thisItem).parent().parent().parent().remove();       //删除item
        showmsg(id+"删除成功");
    }else{
        //alert("删除失败");
    }
                            
}
...
var thisItem=this;
$.post(target,query).success(function(data){
    dellaa(data,thisItem);
});

或者利用函数的bind方法

dellaa=function(data){
    var thisItem=this;
    alert(data.check);
    if(data.check==1){
        //alert("删除成功");
        $(thisItem).parent().parent().parent().remove();       //删除item
        showmsg(id+"删除成功");
    }else{
        //alert("删除失败");
    }
                            
}
...
$.post(target,query).success(dellaa.bind(thisItem));
怪我咯

你可以参考下这个API文档:http://api.jquery.com/jquery.post/
success接收的是回调函数,
看函数定义
Type: Function( Object data, String textStatus, jqXHR jqXHR )
一般传入data参数就够了

怪我咯

变量作用域的问题,第一个之所以可以,是因为success里的匿名函数写在click里面,所以这个匿名函数的父作用域中有thisItem这个局部变量,而后面那个之所以不行,是因为success的回调函数定义在了click外,自然不能访问到click里的变量了。
另外,不对齐的代码不能看...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号