Javascript 在jQuery中触发单击时禁用单击处理程序

Javascript 在jQuery中触发单击时禁用单击处理程序,javascript,jquery,Javascript,Jquery,我们有一个内置.NET和jQuery的网站。我们有自定义jQuery来调用正在处理的ASP.NET页面上的load方法。该ajax调用在单击处理程序中触发,例如 $("#Submit").click(function(){ $(a_selector).load("Process.aspx?data=" + someDataObject, null, function(){ alert("Done")}); } return false; ); 我们的问题是,当我们点击#Su

我们有一个内置.NET和jQuery的网站。我们有自定义jQuery来调用正在处理的ASP.NET页面上的load方法。该ajax调用在单击处理程序中触发,例如

$("#Submit").click(function(){
  $(a_selector).load("Process.aspx?data=" + someDataObject, null, function(){
    alert("Done")});
  }
  return false;
);
我们的问题是,当我们点击#Submit按钮时,会触发单击,这会调用ajax来处理它。人们似乎在双击按钮,因此我们在数据库中通过双击获得了多个结果。有人知道如何防止这个问题吗?我考虑过通过JS禁用按钮,但我想知道其他想法。

使用jQuery。这样,事件只触发一次。当然,您还应该禁用该按钮,以便用户知道单击它是徒劳的。此外,显示微调器、进度条或更改光标样式,以向用户指示正在发生某些事情且系统未卡住

$("#Submit").click(function(){
  $(a_selector).removeClass("class").load("Process.aspx?data=" + someDataObject, null, function(){
    $(this).addClass("class");
    alert("Done")});
  }
  return false;
);
然后只需添加一些特定的类,而不使用任何样式作为选择器。不知道它是否能按你想要的方式工作,但对我来说,这似乎是最简单的解决方案……:)


禁用按钮的想法有什么不对?
$("#Submit").click(function(event){
  event.stopPropagation();

  if (typeof $_submitSend == "undefined")
      var $_submitSend = true;
  else if ($_submitSend == true)
      return false;

  $_submitSend = true;

  $(this).attr("disabled", "disabled");

  $(a_selector).load("Process.aspx?data=" + someDataObject, null, function(){
    alert("Done")});
    $_submitSend = false;
    $(this).removeAttr("disabled");
  }
);