为了账号安全,请及时绑定邮箱和手机立即绑定

$ .ajax上下文选项

$ .ajax上下文选项

浮云间 2019-11-30 13:33:28
yayQuery播客的第11集提到$ .ajax上下文选项。我将如何在成功回调中使用此选项?我目前正在做的是将我的输入参数传递回成功回调,以便可以对成功/错误之后调用的ID进行动画处理。如果使用context选项,那么也许不必从调用的例程中传回参数。在此示例中,我将STATEID传递回成功字段,以便在将状态从DOM中删除后将其从DOM中删除:$('td.delete').click(function() {  var confirm = window.confirm('Are you sure?');  if (confirm) {    var StateID = $(this).parents('tr').attr('id');    $.ajax({      url: 'Remote/State.cfc',      data: {        method: 'Delete',        'StateID': StateID      },      success: function(result) {        if (result.MSG == '') {          $('#' + result.STATEID).remove();        } else {          $('#msg').text(result.MSG).addClass('err');;        };      }    });  }});
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

所context要做的就是this在回调中设置的值。


因此,如果您在事件处理程序中,并且希望this在回调中将其作为接收事件的元素,则可以这样做:


context:this,

success:function() {

    // "this" is whatever the value was where this ajax call was made

}

如果您希望将其设置为其他类型,则只需进行设置即可,并this引用该类型:


context:{some:'value'},

success:function() {

    // "this" the object you passed

    alert( this.some ); // "value"

}

在添加到问题中的代码中,可以使用StateID,但实际上并不需要,因为您已经可以访问该变量。


var StateID = $(this).parents('tr').attr('id');

$.ajax({

    url: 'Remote/State.cfc'

    ,data: {

        method:'Delete'

        ,'StateID':StateID

    }

    ,context: StateID

    ,success: function(result){


        alert(this);     // the value of StateID

        alert(StateID);  // same as above


        if (result.MSG == '') {

            $('#' + result.STATEID).remove();

        } else {

            $('#msg').text(result.MSG).addClass('err');;

        };

    }

});


查看完整回答
反对 回复 2019-11-30
?
holdtom

TA贡献1805条经验 获得超10个赞

如果您设置了上下文选项,那么this成功就是您为设置的值context。因此,如果您传递一个包含输入参数名称和值的对象文字作为上下文,则可以成功使用this.param1第一个输入参数的值。


有关更多信息,请参见.ajax()文档。


查看完整回答
反对 回复 2019-11-30
  • 2 回答
  • 0 关注
  • 558 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信