js在编辑框input下根据输入内容显示匹配内容的下拉列表
实现一个在编辑框input下根据输入内容显示匹配内容的下拉列表。 实现思路很简单: 将匹配的内容放在一个div中,input输入时把匹配内容的div显示在input下面。 在做的过程中遇到一个棘手的问题: input的onblur中隐藏下拉div div的onmouseup 将选择的li内容设置到input 鼠标从Input移到下拉div并点击其中一个li的过程: onmousemove => onblur => onmousedown => onmouseup 这问题两手的地方是是当点击li之前触发onblur,会隐藏下拉div, 则不再触发onmousedown 现在解决办法有两个: 方案1: 触发Onmousemove时获取当前鼠标位置 在onblur事件时判断之前获取鼠标位置是否在下拉div的内部,如果在不隐藏下拉div,反之隐藏下拉div 方案2: 在触发onmousemove时设置标志 在触发onblur时判断标志,如果标志没有设置则隐藏下拉div 若标志已设置,为防止在下拉div外点击触发onblur,则需定时如300ms后对下拉div进行隐藏 若点击的是下拉div则位触发onmouseup事件,则些事件中取消前面设置的 定时器 定时器
用户评论
没什么用