Javascript event.PreventDefault在函数结束前不起作用

Javascript event.PreventDefault在函数结束前不起作用,javascript,Javascript,我有一个复选框,试图根据其位置发送ajax请求。默认情况下这是正确的。我希望能够单击它,并获得一个对话框,询问我是否要放弃更改,该对话框取决于复选框是否为false $("input[type='checkbox']").click(function(evt) { evt.preventDefault(); alert(this.checked); if(checkEdited()){ var result = confirm("Do you wa

我有一个复选框,试图根据其位置发送ajax请求。默认情况下这是正确的。我希望能够单击它,并获得一个对话框,询问我是否要放弃更改,该对话框取决于复选框是否为false

$("input[type='checkbox']").click(function(evt) {
      evt.preventDefault();
      alert(this.checked);
      if(checkEdited()){
      var result = confirm("Do you want to continue?");
      }
    });

 function checkEdited(){
     var checkbox = $("div.managerContent input[type='checkbox']");
     if(!checkbox.checked){
      return false;
    }
    else{
    //check other stuff
    }
   }
每次,我都会收到警报中的
false
。在浏览器中,当我单击复选框时,复选框将消失,我收到警报,然后复选框将返回。。checkEdited()也用于其他地方

无论我在哪里查找如何停止复选框更改事件并稍后为其赋值,只要告诉我使用即可


有什么想法吗?非常感谢

您应该在单击完成之前尝试捕获事件,您可以使用
mousedown
这样做:

$("input[type='checkbox']").on('mousedown',function(evt) {
      evt.preventDefault();
      alert(this.checked);
});
下面是一个演示,其中有一个在它更改之前捕获它的工作示例


小提琴手:谢谢!太棒了!但是,我确实使用了$.mousedown()函数。