我有一个点击事件被调用了两次,但我不知道为什么。
Razor/Html:
<li class="active">
<a href="#" class="listitem">@Model[i].Name</a>
<span style="display:none" class="id">@Model[i].ID</span>
</li>
这是在一个包含多个列表项的for
循环中。
JQuery:
$(".listitem").on("click", function () {
var id = $(this).siblings("span").html();
$.ajax({
url: '@Url.Action("SelectItem", "Home")',
type: "POST",
data: $("#form").serialize() + "&id=" + id,
success: function (result) {
$('#partialView').html(result);
}
});
});
^ 处理列表项的点击。
通过Ajax调用我的控制器刷新局部视图。我的js
包含在局部视图中并进行了刷新,但我不明白为什么这个事件会被调用两次(通常第二次的id是undefined
)。也许我只是犯了一个我没有注意到的简单错误?
我知道有很多关于点击事件被调用两次的问题,但我认为我的情况可能足够不同以至于需要一个问题。我也没有看到很多好的答案。
.on()
方法将一遍又一遍地注册您的单击事件。考虑使用.off()
和.on()
,例如$(".listitem").off("click").on("click", function() { ... });
。 - jacqijvv