我的控制器创建了一个链接列表,像这样:
<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);"
我在这里做错了什么...我看过其他使用这种技术的示例,但我一整天都失败了!
如何在我的Begin和complete函数内访问被点击的元素。
this
。 - Wizard of Ogz