event.target/srcElement一点应用
- - 博客园_首页今天工作遇到一个问题,在朋友帮助下解决了,写下来跟大家分享下. 首先说下需求,有一个文本框,文本框下面有个隐藏的div,div中有几个a标签,当点击文本框时候,div显示出来,点击div中的a标签,会将a标签的值赋到文本框中. 如图 点击文本框,下面div显示. 点击a标签时候 a标签值赋到文本框中.
今天工作遇到一个问题,在朋友帮助下解决了,写下来跟大家分享下。
首先说下需求,有一个文本框,文本框下面有个隐藏的div,div中有几个a标签,当点击文本框时候,div显示出来,点击div中的a标签,会将a标签的值赋到文本框中。点击其他地方时候则隐藏div。
如图 点击文本框,下面div显示
点击a标签时候 a标签值赋到文本框中
当点击外面时候div隐藏
刚开始想的很简单,给文本框一个onblur跟onfoucs事件,分别对应着文本框的隐藏跟显示。a标签注册点击事件。
js:
但是这样子出现了一个问题 ,当点击a标签的时候,他首先触发的文本框的blur事件,这样子a标签的onclick就没有效果。
后来朋友的提示下改了下,思路是这样子的,给文本框一个click事件,让div显示。而给body一个mousedown事件,当鼠标不在文本框以及div中的时候,让他隐藏,刚开始还是想获取mousedown时候的鼠标位置,跟div 的height,width比较,想想比较麻烦。后来朋友一指点,恍然大悟,可以获取选中id,跟文本框,div比较。
改后的js:
当选中的id不为div以及不为文本框,以为不为div中子元素(a标签)时候,则让div隐藏。