我正在开发一个asp.net应用程序,我在其中使用Jquery,我想如果Jquery单击函数调用一次,那么在页面加载之前不应该再次调用它。点击功能代码如下
$("#plblAgreeProblem").click(function(){
var str = {
problemID: $("#problemID").val(),
empID : $("#empID").val()
}
$.ajax({
type: "POST",
url: "<%= Url.Action("AgreeProblem", "Discussion") %>",
data: str,
error: function(msg){
alert("error2" + msg);
},
success: function (msg) {
$("#ptxtDisAgreeProblem").empty();
$("#ptxtDisAgreeProblem").text(msg);
}
});
})
抱歉英语不好。 谢谢和问候
答案 0 :(得分:1)
使用jQuery one
函数:
$("#plblAgreeProblem").one('click', function(){ //...
描述:将处理程序附加到元素的事件。每个元素最多执行一次处理程序。
<强> docs 强>
答案 1 :(得分:0)
在你的clikc处理程序的顶部添加:
$("#plblAgreeProblem").unbind('click');
答案 2 :(得分:0)
其他答案通常是正确的,但请记住 时要取消绑定事件。一旦用户点击它?或者一旦ajax响应成功返回?
$("#plblAgreeProblem").click(function() {
var $this = $(this);
var str = {
problemID: $("#problemID").val(),
empID: $("#empID").val()
}
$.ajax({
type: "POST",
url: "<%= Url.Action("
AgreeProblem ", "
Discussion ") %>",
data: str,
error: function(msg) {
alert("error2" + msg);
},
success: function(msg) {
$("#ptxtDisAgreeProblem").empty();
$("#ptxtDisAgreeProblem").text(msg);
// do this unbind here, after the call has been made successfully.
$this.unbind('click');
}
});
})