3 回答

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
onmousedown之前活躍onblur
div.addEventListener('mousedown', function(event) {
event.preventDefault();
event.stopPropagation();
});

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng) onblur 運(yùn)行時(shí),它將隱藏 div,因此當(dāng)要進(jìn)行單擊時(shí),它不會(huì)在 div 上觸發(fā),因?yàn)?div 是不可見(jiàn)的。所以 :
// use the following global variable
var mytimer = null;
function newOnBlur()
{
mytimer = setTimeout(YourCurrentOnBlurFunctionWihoutParentheses,150);
}
// clearTimeout in the first line of your click function
function newOnClick()
{
clearTimeout(mytimer);
// rest of your click event
}

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
全局變量看起來(lái)有點(diǎn)難看,但這似乎是做到這一點(diǎn)的唯一方法。
對(duì)于那些有同樣問(wèn)題的人: setTimeout 在我的例子中有點(diǎn)迂腐。我必須以這種方式設(shè)置它,否則永遠(yuǎn)不會(huì)使用超時(shí):
var timer = null;
function timer_function(divname)
{
? ? timer = setTimeout(function(){document.getElementById(divname).style.display='none'}, 200);
}
如果超時(shí)被清除,我必須重新聚焦到文本框,否則模糊功能將不再起作用。
感謝您的時(shí)間和幫助。:)
添加回答
舉報(bào)