2011-10-22 47 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); 
     } 
    } 
);