【发布时间】:2014-03-31 19:10:43
【问题描述】:
我有一个输入字段,可以在输入时打开一个建议列表(实时)。一个 javascript 函数,将结果作为下拉列表返回到 div。
此下拉列表中的每个项目都是触发操作的 href 链接。这个动作也是一个javascript函数。
<ul>
<li><a href="#" onclick="getObject(\'index\')">Item name</a></li>
<li> ... other items ... </li>
....
</ul>
到目前为止还可以,工作正常。
问题:单击项目后下拉列表保持打开状态。我搜索并尝试了几十个类似的解决方案,但我就是无法关闭它。
这是单击列表中的项目时触发的操作。传递值“q”。
(为了简化这里的问题,我添加了一个警报而不是我将使用的实际功能。q)
if(typeof $=='undefined') {
function $(q) {
return(document.getElementById(q));
}
}
function getObject(q) {
alert(q);
/// close dropdown list here
};
非常感谢任何帮助!几天来我一直在搜索和尝试类似的代码。谢谢!
这是触发下拉列表的函数
function showSearch(str){
if (str.length==0){
document.getElementById("resultlist").innerHTML="";
document.getElementById("resultlist").style.border="0px";
return;
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("resultlist").innerHTML=xmlhttp.responseText;
document.getElementById("resultlist").style.border="1px solid #CCCCCC";
}
};
xmlhttp.open("GET","search.php?q="+str,true);
xmlhttp.send();
}
search.php 使用简单的 select 语句查找 mysql 表。
【问题讨论】:
-
您介意显示您用于下拉菜单的代码吗?此外,您可以将事件侦听器添加到 标签而不是内联函数,您应该避免这样做。
-
谢谢阿德里安。我添加了下拉代码。
标签: javascript jquery drop-down-menu