asp.net-mvc - 具有相同类的多个元素使 jquery click 事件多次触发

标签 asp.net-mvc asp.net-mvc-3 jquery

我显示用户评论。每条评论都是一条div每个 div<a>带有类 ' commentLikeLink 的标签'。我将 jquery click 事件绑定(bind)到 ' commentLikeLink ' 类,但如果我有 10 条评论并点击一个“赞”按钮,我的事件就会被触发 10 次。
我知道发生这种情况是因为我多次上同一个类。但如何阻止这种情况呢?
代码如下:

...
<div class="commentBox"">
...
@Html.ActionLink(likeText, "LikeComment", "Comment", null, new { id = Model.CommentId, @class = "commentLikeLink" })    
...

事件代码:

$(function () {
            $('.commentLikeLink').click(function (event) {
                var commentId = event.target.id;

                $.ajax({
                    url: this.href,
                    type: 'POST',                    
                    data: { commentId: commentId },
                    context: this,
                    success: function (result) {
                        if (result.msg == '1') {
                            $(this).text('Dislike');
                        }
                        else if(result.msg == '2') {
                            $(this).text('Like');
                        }

                    }
                });
                return false;
            });
        });

最佳答案

您不应获得 10 次点击。您可以将单击事件绑定(bind)到类,但触发事件的上下文是单个元素,因此如果您有一些如下所示的标记:

<p>
    <a href="#" class="clickItem">Liked?</a>
    <br />
    <a href="#" class="clickItem">Liked?</a>
    <br />
    <a href="#" class="clickItem">Liked?</a>
    <br />
    <a href="#" class="clickItem">Liked?</a>
</p>

这样就可以了,将链接文本设置为“喜欢!”单击每个按钮时:

$(document).on("click", ".clickItem", function (ev) {
    $(this).text("Liked!");
});

你调试过代码了吗?您确定一次会获得 10 次点击吗?

关于asp.net-mvc - 具有相同类的多个元素使 jquery click 事件多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286500/

相关文章:

c# - 是否有用于 ASP.NET MVC 的混合身份验证配置 ASP.NET 模块 (MADAM) 的端口?

asp.net-mvc - EF 4.1 代码优先 : "non-null value of type ' DateTime'"Issue

asp.net-mvc - 基于 Razor 的 View 看不到引用的程序集

c# - 如何从模型类生成 Action 链接?

javascript - 延迟加载的 ui-jq 流程图

php - 基思·伍兹倒计时器 DATETIME 格式 Jquery

asp.net-mvc - Asp.net mvc 3处理意外查询

jquery - 使用 JQuery 发布到 ASP.NET MVC [Authenticate] 包装的操作

c# - 从我的 asp.net mvc web 应用程序调用 asp.net 控制台应用程序

javascript - 请求的资源上不存在 'Access-Control-Allow-Origin' header 。响应的 HTTP 状态代码为 405