在webform中单击按钮的Jquery触发器不起作用

时间:2016-09-20 16:58:22

标签: jquery asp.net

我在Webform aspx页面中有代码,其中包含许多带有“like”类的按钮的注释。当我点击其中的一些按钮时,我必须触发点击asp按钮控件,其中包含所有喜欢评论的后端代码。使用此jquery代码:

$(".like").click(function () {
    var button = this;
    var id = $(this).parent().find(".comment-id").val();
    $("[id$='commentID']").val(id);
    if ($(button).find("i").hasClass("fa-star-o")) {
        $("[id$='btnLikeComment']").click();
    }
    else {
        $("[id$='btnUnlikeComment']").click();
    }
});

asp Button的click事件永远不会发生。谁能告诉我问题出在哪里?

编辑:这是asp Buttons控件的代码:

<asp:Button ID="btnLikeComment" runat="server" Style="display: none;" Text="Button" OnClick="btnLikeComment_Click" />
<asp:Button ID="btnUnlikeComment" runat="server" Style="display: none;" Text="Button" OnClick="btnUnlikeComment_Click" />

2 个答案:

答案 0 :(得分:0)

尝试像这样封装JS

   function LikeBtnClick() {
       var button = this;
       var id = $(this).parent().find(".comment-id").val();
       $("[id$='commentID']").val(id);
       if ($(button).find("i").hasClass("fa-star-o")) {
           $("[id$='btnLikeComment']").click();
       }
       else {
           $("[id$='btnUnlikeComment']").click();
       }
   }

然后使用onclientClick上的asp.net属性

<asp:Button ID="btnLikeComment" runat="server" Style="display: none;" Text="Button" OnClientClick="LikeBtnClick" OnClick="btnLikeComment_Click" />
<asp:Button ID="btnUnlikeComment" runat="server" Style="display: none;" Text="Button" OnClientClick="LikeBtnClick" OnClick="btnUnlikeComment_Click" />

答案 1 :(得分:0)

我添加了event.preventDefault();在触发单击asp按钮之前,这样可以正常触发点击事件。

function likeComment(button) {
    var id = $(button).parent().find(".comment-id").val();
    $("[id$='commentID']").val(id);
    event.preventDefault();
    $("[id$='btnLikeComment']").trigger('click');
}

<button class='...' onclick='likeComment(this)'><i class='...'></i></button>