My Controller создает список таких ссылок
<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>
У меня есть такой javascript, как этот
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.');
}
в функции BeginUpdatePage 1 и 3 выполняются нормально, но строка 2 "$ (this).parent(). addClass ('selected'); не видит ничего... (Я объявил этот класс в моем css).
Я просмотрел документы Jquery (Jquery.ajax()), он говорит, что "this" - это элемент, который был нажат. Я также проверил в jquery.unobtrusive-ajax.js, который был по умолчанию в моем проекте. Этот файл также передает "this" при выполнении моей функции.
"result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this,arguments);"
Что я делаю неправильно здесь... Я видел другие примеры, которые использовали эту технику, но я терпел неудачу весь день!
Как я могу получить элемент, который был нажат, внутри моих начальных функций.