Como usar $ (this) dentro do MVC3 Ajax.ActionLink OnBegin, OnComplete Events
My Controller cria uma lista de links 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>
Eu tenho algum 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.');
}
na função BeginUpdatePage, as linhas 1 e 3 são executadas corretamente, mas a linha 2 "$ (this) .parent (). addClass ('selected');" visivelmente não faz nada ... (declarei essa classe no meu css).
Eu olhei os documentos do Jquery Jquery.ajax ()) diz que "este" é o elemento que foi clicado. Também verifiquei "jquery.unobtrusive-ajax.js" que estava no meu projeto por padrão. Este arquivo também passa "this" ao executar minha função.
"result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this,arguments);"
O que estou fazendo de errado aqui ... eu já vioutros exemplos que usaram essa técnica, mas falhei o dia todo!
Como posso acessar o elemento que foi clicado, dentro do meu Begin, concluir as funçõe