如何仅在两个div失焦时激活Onblur JQUERY:Javascript
对于自动建议 我有一个用于输入标记的div和另一个用于建议div…我希望建议div在其中一个之后消失 1) 在“建议”分区中选择了一个元素 或 2) 单击两个div之外的区域时 现在的问题是在哪里添加一个“onblur”事件如何仅在两个div失焦时激活Onblur JQUERY:Javascript,javascript,jquery,css,Javascript,Jquery,Css,对于自动建议 我有一个用于输入标记的div和另一个用于建议div…我希望建议div在其中一个之后消失 1) 在“建议”分区中选择了一个元素 或 2) 单击两个div之外的区域时 现在的问题是在哪里添加一个“onblur”事件 <input type = "text" name= "target" value = "" id="target" style="width:150px" onblur ="setTimeout('removeSuggestions()', 20);" onkeyu
<input type = "text" name= "target" value = "" id="target" style="width:150px" onblur ="setTimeout('removeSuggestions()', 20);" onkeyup ="getSuggestions(this.value);"/>
<div id ="suggestions"></div>
但每次我尝试单击一个建议时,建议div就会消失,因为一旦我离开输入字段,就会调用删除建议。超时应该有帮助,但没有。我怎样才能解决这个问题呢?也许这样可以解决你的问题。我们只需要监控搜索框的模糊度,因为点击搜索框(即使是根据建议)会触发隐藏事件
但是为什么我没有工作?…这解决了我的方法的什么“问题”?…我想它会工作,但是你有一个20毫秒的超时时间。太短了,没人注意到。在我看来,这是一种糟糕的做事方式。故障排除困难,容易损坏。
function getSuggestions(value){
if (value !=""){
$.post("target.php", {targPart:value}, function(data) {
$("#suggestions").html(data);
if(value.length>2){
doCSS();
}
});
} else {
removeSuggestions();
}
}
function removeSuggestions(){
$("#suggestions").html("");
undoCSS();
}
function addText(value){
$("#target").val(value);
}
function doCSS(){
$("#suggestions").css({
'border' : 'solid',
'border-width': '1px'
});
}
function undoCSS(){
$("#suggestions").css({
'border' : '',
'border-width': ''
});
}
$('#search').focus(function() {
$('#suggestions').slideDown();
});
$('#search').blur(function() {
$('#suggestions').slideUp();
});
$('#suggestions div').click( function() {
$('#search').val($(this).html());
});