我在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" />
答案 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>