gpt4 book ai didi

jquery - 如何告诉 Ajax.ActionLink OnSuccess 回调哪个元素启动了 ajax

转载 作者:行者123 更新时间:2023-12-03 22:49:03 24 4
gpt4 key购买 nike

我希望我的 Razor View 看起来像这样

@Ajax.ActionLink("A", "Buy", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "updateLetter" }, new { id = "letter-A" })
@Ajax.ActionLink("B", "Buy", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "updateLetter" }, new { id = "letter-B" })
@Ajax.ActionLink("C", "Buy", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "updateLetter" }, new { id = "letter-C" })

我的 javascript 看起来像这样

function updateLetter(letter)
{
$("#letter-" + letter).toggleClass('selected');
}

这个想法是,如果我单击 A 链接,它将执行 ajax 并切换该元素上的类。但我不确定如何连接它。我错过了什么?

最佳答案

首先修复您的 Ajax.ActionLink 重载,因为您的重载无法编译。

要传递参数,您可以这样做:

@Ajax.ActionLink(
"A",
"About",
null,
new AjaxOptions {
HttpMethod = "POST",
OnSuccess = "updateLetter('A')"
},
new {
id = "letter_A"
}
)

然后:

function updateLetter(letter)
{
$("#letter-" + letter).toggleClass('selected');
}

就我个人而言,我不喜欢 Ajax.* 帮助程序。我使用另一种方法,其中包含标准 HTML ActionLink:

@Html.ActionLink(
"A",
"About",
null,
new {
@class = "letter"
id = "letter_A"
}
)

我在一个单独的 javascript 文件中不引人注目地进行 AJAXify:

$(function() {
$('.letter').click(function() {
var $letter = $(this);
$.post(this.href, function(result) {
$letter.toggleClass('selected');
});
});
});

关于jquery - 如何告诉 Ajax.ActionLink OnSuccess 回调哪个元素启动了 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com