ExtJS:鼠标移出菜单后菜单自动隐藏
ExtJS:鼠标移出菜单后菜单自动隐藏
1、使用的是Extjs2.0.2。
2、遇到的问题,简述如下:
当下拉菜单显示后,如果不做任何操作,而直接移开鼠标,此时菜单不会自动消失(隐藏),一直会显示在屏幕上。
必须需要鼠标单击一下菜单项,或单击页面的其他地方后,该菜单才会消失(隐藏)。
3、为了增强用户体验,测试鼠标在移出下拉菜单后,使菜单可以自动隐藏。
下面是测试Demo的代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
<title>TEST</title>
<link rel="stylesheet" type="text/css" href="./extjs/ext-all.css" />
<link rel="stylesheet" type="text/css" href="./extjs/ext-patch.css" />
<script type="text/javascript" src="./extjs/ext-base.js"></script>
<script type="text/javascript" src="./extjs/ext-all.js"></script>
<script type="text/javascript" src="./extjs/ext-lang-zh_CN.js"></script>
<script type=text/javascript>
Ext.onReady(function(){
Ext.QuickTips.init();
//子级菜单项
var menu1_1_1 = new Ext.menu.Menu({
id:'menu1_1_1',
items: [
{id: "1551",text:'测试1',handler: onItemClick},
{id: "1552",text:'测试2',handler: onItemClick},
{id: "1553",text:'测试3',handler: onItemClick}
]
});
//子级菜单项
var menu1_1 = new Ext.menu.Menu({
id:'menu1_1',
items:[
{id: "151",text:'子项1',handler: onItemClick},
{id: "152",text:'子项2',handler: onItemClick},
{id: "153",text:'子项3',handler: onItemClick},
{id: "154",text:'子项4',handler: onItemClick},
{id: "155",text: '子项5',menu: menu1_1_1}]
});
//菜单1
var menu1 = new Ext.menu.Menu({
id: 'menu1',
items: [
{id: "11",text:'菜单项1',handler: onItemClick},
{id: "12",text:'菜单项2',handler: onItemClick},
{id: "13",text:"菜单项3",handler: onItemClick},
{id: "14",text: "菜单项4",handler: onItemClick},
{id: "15",text: "菜单项5",menu: menu1_1},
{id: "16",text: "菜单项6",handler: onItemClick}
]
});
//菜单2
var menu2 = new Ext.menu.Menu({
id: 'menu2',
items: [
{id: "21",text: '菜单1',handler: onItemClick},
{id: "22",text: "菜单2",handler: onItemClick},
{id: "23",text: "菜单3",handler: onItemClick}
]
});
//菜单3
var menu3 = new Ext.menu.Menu({
id: 'menu3',
items: [
{id: "31",text: '菜单4',handler: onItemClick},
{id: "32",text: "菜单6",handler: onItemClick}
]
});
var d_menu1 = Ext.get("d_menu1");
var d_menu2 = Ext.get("d_menu2");
var d_menu3 = Ext.get("d_menu3");
d_menu1.on("mouseover",
function(e){
menu1.show(d_menu1);}
);
d_menu2.on("mouseover",
function(e){
menu2.show(d_menu2);}
);
d_menu3.on("mouseover",
function(e){
menu3.show(d_menu3);}
);
//鼠标移出菜单后,菜单自动隐藏。
var mouseOutHideMenu = function(MyMenu){
MyMenu.on("mouseout",
function(menu,e,itme){
if(!e.getRelatedTarget().contains(e.getTarget())&& !menu.getEl().contains(e.getRelatedTarget())){
//下面这句if语句,是判断鼠标是否移动到子菜单上。
if (!Ext.get(e.getTarget()).hasClass('x-menu-item')){
hideAllMenu();
}
}else
if(e.getRelatedTarget().contains(menu.getEl().dom)){
//下面这句if语句,是判断鼠标是否移动到子菜单上。
if (!Ext.get(e.getTarget()).hasClass('x-menu-item-icon')&&!Ext.get(e.getTarget()).hasClass('x-menu-item')){
hideAllMenu();
}
}
});
}
//每个菜单项添加监听
mouseOutHideMenu(menu1);
mouseOutHideMenu(menu2);
mouseOutHideMenu(menu3);
mouseOutHideMenu(menu1_1);
mouseOutHideMenu(menu1_1_1);
var hideAllMenu = function(){
//隐藏菜单
menu1.hide();
menu2.hide();
menu3.hide();
menu1_1.hide();
menu1_1_1.hide();
}
var page_header=Ext.get('menu_header');
page_header.on("mouseover",function(e){
hideAllMenu(); //隐藏菜单
});
});
function onItemClick(item){
//alert('Click!');
}
</script>
</head>
<body>
<div id="menu_header">
<table height="20" cellSpacing="0" cellPadding="0" width="1004" border="0">
<tr>
<td>Welcome</td>
</tr>
</table>
</div>
<table height="50" width="1004" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><div id = "d_menu1">菜单1</div></td>
<td><div id = "d_menu2">菜单2</div></td>
<td><div id = "d_menu3">菜单3</div></td>
<td>
</tr>
</table>
</body>
</html>
[-完-]
by JRQ
2010/12/30
转载于:https://www.cnblogs.com/java0819/archive/2010/12/31/2146207.html
ExtJS:鼠标移出菜单后菜单自动隐藏相关推荐
- echarts 地图去除点击事件_echarts 地图 鼠标移出地图后的事件要怎么写
不需要做鼠标移出地图后的事件监听. echarts 点击一个区域,会选中它.再次点击,就取消选中. 只需要设置地图只能选择一个,然后监听点击事件,鼠标点击时,判断该区域是否选中,如果选中则显示相应区域 ...
- echarts鼠标滑动缩放后会自动回弹(已解决)
今天碰到的一个小坑:由于数据过多,在有限的视野内显示不完,需要滑动缩放完成数据的预览.跟着官方文档写之后确实是实现缩放和滑动,但是问题也就出现了,过了几秒后自动回弹原大小. 原代码:(会发生回弹) d ...
- 鼠标移入下拉菜单相关问题?
一.这是需要实现的效果 功能描述: 鼠标移入导航,下方显示对应的菜单: 鼠标移出导航,隐藏下方对应的菜单: 当下方菜单显示后,鼠标移入没有变化: 当鼠标移出下方的菜单,菜单进行隐藏: 如图所示: 二. ...
- 制作可以自动隐藏的弹出式菜单
关键在于对WM_ENTERIDLE消息的处理 在菜单状态下移动鼠标会产生WM_ENTERIDLE消息 这时用TempPoint.WindowFromPoint可以取得当前鼠标所指窗体的句柄 再用Get ...
- html字段隐藏,HTML5+CSS3实现超酷登录窗口(自动隐藏默认文本及判断必填字段)
内容介绍热点排行相关文章下载地址↓ 效果非常不错的登录窗口,输入框获取焦点后会自动隐藏默认文本,如果为空会提示必填字段 ,经测试,效果相当不错,感兴趣的朋友可以参考下哈 在网页head区添加以下代码 ...
- Pycharm2019使用方法(六)——鼠标放代码中单击Edit后菜单功能
上一章:Pycharm2019使用方法(五)--鼠标放代码中单击鼠标右键后菜单功能 一.鼠标放代码中单击Edit后菜单功能 二.说明 Paste from History 从历史粘贴记录中选择,进行粘 ...
- table内容超长自动隐藏,鼠标放置后浮动显示全部内容
目录 问题描述 解决思路 相关代码 1.限定td的宽度 2.内容特殊处理 3.全局指定动态指定css样式 4.效果如下 延伸 贴两个关于rem/em/px介绍的参考文献 问题描述 有的时候table作 ...
- Android 拖拽球吸附动画,android可拖动,展示菜单,能自动吸边和半隐藏的悬浮球...
FloatBall 效果图 | Gradle 项目根目录的build.gradle: buildscript { allprojects { repositories { jcenter() } } ...
- android自动隐藏悬浮菜单,FloatBall
FloatBall 效果图 | Gradle 项目根目录的build.gradle: buildscript { allprojects { repositories { jcenter() } } ...
最新文章
- 两个开发源码加密库openssl和cryptlib的比较
- USACO 1.2-Transformations
- web前端技术-教你如何部署私有Git服务器?
- 一个颜值低但脾气超好的自动化运维实战入门教程
- 论云计算机下的中小企业会计信息化建设,中小企业云会计信息化的建议论文
- 从M2M迁移到IIoT工业物联网
- android 拖动按钮
- 为什么都建议学java而不是python-为什么java比python复杂,还是有很多人选择学习java?...
- 深度学习自学(十七):caffe-sphereface-编译matcaffe遇到的问题
- javascript 的预解释机制
- Modbus PLC攻击分析:Smod渗透框架研究
- jsp android 交互,Android中HTTP几种请求和响应的代码实现
- 第一期:一款简单好用的屏幕画笔工具
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第 几号的那位。
- openwrt修改lan口地址失败_OpenWrt刷机后LAN口无法连通的问题
- 爬山法、随机重启爬山法、模拟退火算法对八皇后问题和八数码问题的性能测试...
- FRED应用: LED混合准直透镜模拟
- 最优化方法(学习笔记)-第十一章等式约束优化问题
- 【Android】RXAndroid
- 《CSDN 涨粉攻略》11个涨粉方法,你学会了几个?
热门文章
- 11-2 操作系统发展
- s6-1 传输层概述
- 测试用例 集成测试增删改查_20年高级测试人员的进阶汇总
- numpy matlab 索引不同,与Numpy相似的MATLAB数组索引
- django mysql内存泄漏_Django的:使内存的关系,而不保存到数据库
- “新内容 新交互”全球视频云创新挑战赛复赛启幕
- @所有人 Flink Forward Asia 2020 向您发出议题征集邀请!
- 玩法与叙事撕裂许久,3A与暴力却难分难舍
- 发挥游戏人工智能的最大价值:线程化
- 第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)