Cómo usar $ (esto) dentro de MVC3 Ajax.ActionLink OnBegin, OnComplete Events

Mi controlador crea una lista de enlaces como este

<ul id="MainMenu">
@foreach (var item in Model.MenuItems)
{
    <li>@Ajax.ActionLink(item.Caption,
    item.ActionName,
    item.ControllerName,
    new AjaxOptions
    {
        UpdateTargetId = "pageBody",
        OnBegin = "BeginUpdatePage",
        OnComplete = "EndUpdatePage",
        OnFailure = "FailUpdatePage"
    })
    </li>
}
</ul>

Tengo algunos javascript como este

function BeginUpdatePage() {
 $("#MainMenu li").removeClass('selected');
 $(this).parent().addClass('selected');
 $("#pageBody").fadeTo('slow', 0.5);
}

function EndUpdatePage() {
 $("#pageBody").fadeTo('slow', 1);    
}

function FailUpdatePage() {
 alert('There has been an error loading this page please try again.');
}

en la función BeginUpdatePage, las líneas 1 y 3 se ejecutan bien, pero la línea 2 "$ (this) .parent (). addClass ('selected');" visiblemente no hace nada ... (he declarado esa clase en mi CSS).

He mirado los documentos de Jquery Jquery.ajax ()) dice que "esto" es el elemento en el que se hizo clic. También he marcado "jquery.unobtrusive-ajax.js" que estaba en mi proyecto por defecto. Este archivo también pasa "esto" al ejecutar mi función.

"result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this,arguments);"

¿Qué estoy haciendo mal aquí ... He vistoOtros ejemplo que han usado esta técnica pero he estado fallando todo el día!

¿Cómo puedo acceder al elemento en el que se hizo clic, dentro de mi Comenzar, funciones completas.

Respuestas a la pregunta(5)

Su respuesta a la pregunta