请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

一个控件问题,麻烦老师帮忙解决一下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>text</title>
</head>
<body>
  <div tabindex="1">
    <input id="text" type="text" />
    <ul style="display: none;">
      <li>编号0001</li>
    </ul>
  </div>
  <script>
    let text = document.getElementById('text'); // 获取文本框
    let oul = document.getElementsByTagName('ul')[0]; // 获取ul标签
    let oli = oul.getElementsByTagName('li'); // 获取li标签
    // 文本框获得焦点的时候ul列表显示
    text.addEventListener("focusin", () => {
      oul.style.display = 'block';
    })
    // 文本框失去焦点的时候ul列表隐藏
    text.addEventListener("focusout", () => {
      oul.style.display = 'none';
    })
    // 现在我用的方法是setTimeout
    // text.onblur = function() {
    //   setTimeout(() => {
    //     console.log(1)
    //     oul.style.display = 'none';
    //   }, 100)
    // }
    // 为每一个li标签添加点击事件:将li标签里面的内容存储在文本框里
    for (let i = 0; i < oli.length; i++) {
      oli[i].onclick = function() {
        text.value = this.innerHTML;
      }
    }
  </script>
</body>
</html>

老师,如果不通过定时器,怎么解决这个问题

正在回答 回答被采纳积分+3

1回答

提问者 目訫 2019-06-07 04:56:35

老师,可以帮忙回答一下这个问题吗?

0 回复 有任何疑惑可以回复我~
  • Dell #1
    你好,我看你的代码,没有理解你的问题,你要解决什么功能上的缺陷吗?
    回复 有任何疑惑可以回复我~ 2019-06-07 22:00:35
  • 提问者 目訫 回复 Dell #2
    是的,我想解决点击下拉框给文本框赋值,下拉框消失的问题,但是不能用延时器。
    回复 有任何疑惑可以回复我~ 2019-06-07 22:07:09
  • Dell 回复 提问者 目訫 #3
    为什么不能用延时器?
    回复 有任何疑惑可以回复我~ 2019-06-07 22:47:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信