2011-10-22 31 views
0

我有一個文本區域#ta#ac-list那底下的二手自動完成列表:如何檢測文本區域何時失去焦點並在點擊特定元素時不會失去焦點?

<div id='container'> 
    <textarea id="ta" name="god" rows="20"></textarea> 
    <ul id='ac-list' style='visibility:hidden'></ul> 
</div> 

當文本區域失去焦點,我想隱藏#ac-list。於是我打電話jQuery的blur上的文字區域:

$('#textarea').blur(function() { 
    $('#ac-list').css('visibility', 'hidden'); 
}) 

這工作,但我想補充一點,文本區域不應該失去焦點的約束,當上#ac-list用戶點擊。我怎麼去解決這個問題?

+0

你的意思是你想,當你管理'#AC-list' textarea的不賠的光標?這不可能。我想你應該隱藏'#ac-list',當用戶點擊它或者不在時,然後再次在textarea中重點。 –

回答

0

這是你所需要的?這只是一個解決方法。在textarea上模糊所需的時間以及專注於li項目的時間因不同的計算機而異。

HTML:

<div id='container'> 
    <textarea id="ta" name="god" rows="20"></textarea> 
    <ul id='ac-list'> 
     <li>dsfd</li> 
    </ul> 
</div> 

的JavaScript:

var textAreaBlur = null; 

$('textarea').blur(function() { 
    textAreaBlur = new Date(); 
}); 

var clickTimes = 0; 
$("#ac-list > li").click(
    function() { 
     if((new Date() - textAreaBlur) < 200) { 
      $("#ta").focus(); 
      $(this).text("dsfd" + ++clickTimes); 
     } 
    } 
);