Opción de contexto $ .ajax

El episodio 11 del podcast yayQuery menciona la opción de contexto $ .ajax . ¿Cómo usaría esta opción en la callback exitosa? Lo que estoy haciendo actualmente es pasar mis parámetros de entrada a la callback de éxito para que pueda animar la identificación que se llamó después de éxito / error. Si uso la opción de contexto, entonces quizás no tenga que volver a pasar los parámetros desde la rutina llamada.

En este ejemplo, paso STATEID de nuevo al campo de éxito para que el estado se elimine del DOM una vez que se ha eliminado de la base de datos:

$('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');; }; } }); } }); 

Todo lo que hace el context es que establece el valor de this en las devoluciones de llamada.

Entonces, si está en un controlador de eventos, y quiere que this en las devoluciones de llamadas sea el elemento que recibió el evento, haría:

 context:this, success:function() { // "this" is whatever the value was where this ajax call was made } 

Si desea que sea de otro tipo, simplemente configúrelo, y this se referirá a eso:

 context:{some:'value'}, success:function() { // "this" the object you passed alert( this.some ); // "value" } 

En el código que agregó a la pregunta, podría usar StateID , pero no lo necesitaría porque ya tiene acceso a esa variable.

 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');; }; } }); 

Si configura la opción de contexto, this será lo que establezca como valor para el context . Entonces, si pasa un literal de objeto que contiene los nombres y valores de los parámetros de entrada como el contexto, entonces con éxito podría usar this.param1 para obtener el valor de su primer parámetro de entrada.

Consulte los documentos .ajax () para obtener más información.