亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$ .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 關注
  • 632 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號