我需要做一些事情時,從文本框中發出模糊事件。使用jQuery緩存模糊事件
問題是當用戶按下「Enter」鍵 並且在其他地方點擊鼠標時,模糊事件也被觸發。
我需要做一些特定的動作,當鼠標點擊其他地方;我會怎麼做?
我需要做一些事情時,從文本框中發出模糊事件。使用jQuery緩存模糊事件
問題是當用戶按下「Enter」鍵 並且在其他地方點擊鼠標時,模糊事件也被觸發。
我需要做一些特定的動作,當鼠標點擊其他地方;我會怎麼做?
這可能是一種方法:
<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>
它使用的標誌(命名爲「模糊」,存儲在輸入數據內)。
因此,如果模糊事件觸發,此標誌首先設置爲1,稍後設置爲0(此時應該足以點擊以前觸發)。如果點擊文檔,它只是檢查這個標誌。
這也可能幫助:延緩模糊事件操作它觸發按鈕單擊事件之前
設置定時器。
//命名空間定時器VAR的SetTimer = {計時器:空}
$('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();
});
我不清楚這裏;你能說出你真正想要的模糊事件,以及你不想要的模糊事件嗎? – 2010-12-04 12:38:01