文档.Onclick关闭,但保持打开时,菜单单击
document.onclick close but keep open when menu is clicked
好的,我有这个下拉菜单脚本。它的工作很好,当所有的点击发生在菜单本身,但当我点击菜单的下拉不关闭。我希望菜单关闭,如果用户点击屏幕上的某个地方,而不是实际的菜单。
我试过添加代码:
document.onclick = ddMenu_close;
但是这使得菜单永远不会打开,因为它通过函数调用"open",但随后立即关闭它,因为它随后调用onclick ddMenu_close。我的脚本如下:
<script type="text/javascript">
function ddMenu() {
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function ddMenu_open(e)
{
ddMenu_close();
var submenu = $(this).find('ul');
if(submenu){
ddmenuitem = submenu.css('visibility', 'visible');
}
}
function ddMenu_close()
{ if(ddmenuitem) ddmenuitem.css('visibility', 'hidden'); }
function ddMenu_timer()
{ closetimer = window.setTimeout(ddMenu_close, timeout); }
function ddMenu_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
$(document).ready(function()
{ $('#ddMenu > li').bind('click', ddMenu_open);
$('#ddMenu li ul').bind('click', ddMenu_timer);
});
}
</script>
所以我需要添加一些东西到这个脚本,将关闭下拉当文档或窗口被点击,但不干扰点击菜单或下拉。谢谢你的帮助。
在ddMenu_open()中为$(document)绑定点击事件触发ddMenu_close()。在ddMenu_close()中取消$(文档)的单击事件。
下面是示例:
http://jsfiddle.net/bEPvP/相关文章:
- JQuery在单击正文时隐藏上下文菜单
- 通过单击同一图标使菜单出现和消失
- 引导菜单没有't在导航栏中单击打开
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 单击图像后如何创建下拉菜单?[引导/角度]
- 单击事件打开两个弹出菜单
- 单击删除下拉子菜单
- 使用Jquery创建一个具有单击和悬停功能的菜单
- 悬停时展开垂直下拉菜单,而不是单击
- 切换菜单仅在单击时打开,而不是默认情况下打开
- 单击下拉菜单时,将文本粘贴到输入框中
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 阻止在单击和关闭覆盖菜单css时滚动正文
- 通过单击主菜单外部关闭子菜单'不适用于IE,但适用于Firefox&铬
- 引导两个响应菜单-单击另一个菜单按钮时折叠一个菜单
- jQuery UI链接选择菜单.单击按钮时窗体将重置
- CSS 菜单 - 单击时的子菜单 (JS)
- Jquery下拉菜单.单击时,子菜单将消失.因此,如何使子菜单在单击时保持不变
- 多个下拉菜单-单击不关闭
- Accordian菜单(单击时)影响图像在下一个表格单元格中的位置