Jquery点击功能不应该再次调用

时间:2012-02-06 18:46:54

标签: javascript jquery

我正在开发一个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);

                }
            });
        })

抱歉英语不好。 谢谢和问候

3 个答案:

答案 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');

        }
    });


})