嗨,再次,你们精彩的人!
这次我的问题是测试鼠标是否发生了模糊声明。
我有一个全局解决方案,其中每个输入字段都在BLUR上验证。 在这个事件中,我需要测试是否已经点击某个元素(即helpBubble),如果有,我不希望验证发生,但是,如果没有点击该特定元素,验证仍然需要发生。
任何帮助都会受到压倒性的赞赏!!
答案 0 :(得分: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;
}
});
在执行验证之前,这将在模糊后等待100分钟,但如果在该时间范围内发生点击(几乎立即发生),它将在发生之前被取消。
修改:这是一个有效的例子:http://jsfiddle.net/9SzDP/