嗨,你们这些很棒的人!

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

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

任何帮助将不胜感激!

最佳答案

先前聚焦元素的 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;
  }
});

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

编辑 :这是一个工作示例:http://jsfiddle.net/9SzDP/

关于jquery - 根据单击的项目取消模糊处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4520108/

10-11 05:39