情况是这样,有一个文本框,下边有一下拉框 类似日历选取那样,下拉框里有按钮可点击,当鼠标点击(或聚焦)文本框时,下拉框显示, 点击下拉框内时也不隐藏, 点击下拉框外边时(也就是任意空白地方 不包含下拉框) 才让下拉框隐藏, 但如果我绑定的是文本框的blur事件的话 ,点击下拉框的里边时也会被隐藏掉。。 那么有什么方法 可以实现 点击文本框显示,点击下拉框里边不隐藏, 点击下拉框以外时(任意空白)才隐藏下拉框 的方法呢??

http://jsfiddle.net/sa6pz/
无标题文档
<
script>
window.onload=function(){
var ob=document.getElementById('box');
var oInp=ob.getElementsByTagName('input');
var oSlide=ob.getElementsByTagName('p');
var ot=document.getElementById('title');
var tBtn=ot.getElementsByTagName('span');
var i=0;
var bBtn=true;
for(;i
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
提供一个思路
1、绑定body元素的click事件,执行隐藏弹出层的操作,因为事件冒泡的机制,所有页面元素的click事件都能够捕获到。
2、在输入框、弹出层的click事件中,使用event.stopPropagation()防止事件冒泡。
下面是一个jsfiddle的例子。
http://jsfiddle.net/LDree/