gpt4 book ai didi

jquery - 在 ASP.NET MVC 中处理 jquery 事件

转载 作者:行者123 更新时间:2023-12-01 08:29:16 25 4
gpt4 key购买 nike

我会尽力让这件事变得尽可能简单。

我刚刚开始使用 jquery,不知道做我想做的事情的最佳方法是什么,或者我是否完全错误。我正在尝试制作一个简单的“推荐”按钮来推荐文章,但我希望一旦用户推荐了一篇文章,他就不能再次推荐它。

到目前为止,我让按钮正常工作并使用函数 $.post 发布数据,然后,当用户投票时,我禁用该按钮,这样他就无法再次发布数据。问题是,如果他重新加载页面,按钮将再次启用(我正在控制此服务器端,但我也想禁用按钮客户端)。

如果用户在 .ready 函数中推荐了一篇文章以便不绑定(bind)按钮事件,从 jquery 检测的最佳方法是什么?

我可以想到两个可行的解决方案,但对我来说似乎没有一个足够干净,第一个是如果推荐与模型一起加载,则为 View 中的按钮提供不同的 ID,以便事件永远不会绑定(bind)。或者另一个解决方案是在文档中进行另一个 ajax 调用。准备好检查该文章是否已被推荐。

很多网站都有这种行为(例如 youtube),因此必须有更好的方法来做到这一点。

一些代码:

这是我在 View 中的“按钮”:

<% // Display the button %>
<%= Html.Image("/ECA/Content/Images/notchecked.png", new { id = "recommend" })%>

还有我的 jquery 事件绑定(bind):

    //Add click event to recommend the article
$("img[id^='recommend']").click
(
function() {

UpdateVote( 2);
}
);

我的回调函数:

var UpdateVoteCallBack=function(data) {
$("#recommend")
.attr('src','/ECA/Content/Images/checked.png');
$("#recommend").unbind('click');

}

最佳答案

当您绘制原始服务器页面时,不要为已经推荐的文章绘制可点击的按钮 - 相反,绘制一个标签,上面写着“您喜欢这个!”或类似的东西。

让您的客户端 jQuery 在回调中用此标签替换按钮,而不是仅仅删除点击处理程序 - 这将为您的用户提供一些反馈,表明他们的建议已被接受。

最后 - 确保对于没有 Javascript 的客户端,实际的按钮单击或表单提交是在服务器端处理的,他们的建议得到确认,并且当他们获得结果页面时,显示的是“我喜欢这个”而不是按钮。

请记住,您应该始终尝试使用 jQuery 等来增强网站的底层行为;首先使其在没有任何 AJAX 的情况下工作,然后添加附加功能。

关于jquery - 在 ASP.NET MVC 中处理 jquery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/810878/

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