我需要在从文本框中触发模糊事件时执行某些操作。
问题是当用户按下“Enter”键时也会触发blur事件 当鼠标在其他地方被点击时。
当鼠标在其他地方被点击时,我需要做一些特定的动作;我该怎么做?
答案 0 :(得分:1)
这也可能有所帮助:
设置计时器,在触发按钮点击事件之前延迟模糊事件操作。
// timer var setTimer = {timer:null}
的命名空间 $('input,select').blur(function () {
setTimer.timer = setTimeout(function () {
functionCall();
}, 1000);
});
$('input,select').focus(function () {
setTimer.timer = setTimeout(function () {
functionCall();
}, 1000);
});
$("#btn").click(function () {
clearTimeout(setTimer.timer);
functionCall();
});
答案 1 :(得分:0)
这可能是一种方式:
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
<input id="txtbox" ><input>
<script>
$(document).click(function()
{
if($('#txtbox').data('blurred')==1)
{
$('#txtbox').data('blurred',0);
alert('blurred by click');
}
}
);
$('#txtbox').blur(function(e)
{ var _this=this;$(_this).data('blurred',1);
setTimeout(function(){$(_this).data('blurred',0);} ,200);
}
).unbind('click');
</script>
它使用一个标志(名为'blur',存储在输入数据中)。
因此,如果模糊事件触发,则此标志首先设置为1,稍后设置为0(此时此刻应该足以使点击之前触发)。如果在文档上单击触发,它只会检查此标志。