根据单击的项取消模糊处理程序

Kev*_*vin 3 jquery onclick onblur

嗨再次你精彩的人!

这次我的问题是测试是否发生了带有模糊语句的mouseClick.

我有一个全局解决方案,其中每个输入字段都在BLUR上验证.在这个事件中,我需要测试是否已经点击某个元素(即helpBubble),如果有,我不希望验证发生,但是,如果没有点击该特定元素,验证仍然需要即将发生.

任何帮助都将受到压倒性的赞赏!!

Phr*_*ogz 6

blur先前聚焦元素的事件将在之前进行发射click的新的重点元素上的事件.因此,除非添加超时,否则无法根据要移动的内容阻止验证onblur.例如:

var validationTimer;
$('#myform input').blur(function(){
  var blurred = $(this);
  validationTimer = setTimeout(function(){
    validationTimer = null;
    // Perform Validation on 'blurred'.
  },100);
});

$('.helpbubble').click(function(){
  if (validationTimer){
    clearTimeout(validationTimer);
    validationTimer = null;
  }
});
Run Code Online (Sandbox Code Playgroud)

在执行验证之前,这将在模糊后等待100ms,但如果在该时间范围内发生点击(几乎立即发生),它将在发生之前被取消.

编辑:这是一个有效的例子:http://jsfiddle.net/9SzDP/