实现jQuery EasyUI右键菜单变灰不可用效果

开发 前端
用jQuery实现了三种情况下的变灰不可用的效果,当鼠标放到上面点击,右键菜单就会消失,其实解决的办法也很简单,只要在对应的单击事件里重新绑定右键菜单即可

使用过EasyUI的朋友想必都知道疯狂秀才写的后台界面吧,作为一个初学者我不敢妄自评论它的好坏,不过它确实给我们提供了一个很好框架,只要在它的基础上进行修改,基本上都可以满足我们开发的需要。

知道“疯狂秀才”写的后台界面已经有一段时间了,直到昨天才好好的研究了一下。在测试的过程中,我发现了一个自认为不友好的地方,举个例子:只剩下一个Tab选项卡时,点击“除此之外全部关闭”,接着会弹出两个提示框,提示“后边没有了~~”和“到头了前边没有了~~”。我平时经常使用VS作为开发工具,使用VS的朋友也会注意到,当只有一个页面打开时,右击“Close All But This”是变灰不可用的,我感觉这样更加的人性化。于是,我就试着实现这一功能。“疯狂秀才”给加了注释,所以在研究代码的时候很方便,在这里真的感谢“疯狂秀才”所做的工作。在“outlook2.js”这个文件中有一个函数“tabClose()”,里面清清楚楚的加了这样一条注释 /*为选项卡绑定右键*/。我看到这里就高兴了,要实现我的功能就是在这里面了。

首先,实现“除此之外全部关闭”变灰不可用。

当只打开一个Tab选项卡时,右键菜单里“除此之外全部关闭”就应该变灰不可用,这样可以提示用户没有除这一个选项卡没有其他的选项卡了。程序实现很简单了,只要获得打开Tab选项卡的个数,如果个数为1,那么就把“除此之外全部关闭”变灰不可用就行了。

  1. var tabcount = $('#tabs').tabs('tabs').length; //tab选项卡的个数  
  2.     if (tabcount <= 1) {  
  3.         $('#mm-tabcloseother').attr("disabled", "disabled").css({ "cursor": "default", "opacity": "0.4" });  
  4.     }  
  5.     else {  
  6.         $('#mm-tabcloseother').removeAttr("disabled").css({ "cursor": "pointer", "opacity": "1" });  
  7.     } 

说明:在Firfox,Google,Opera浏览器里,“disabled”的属性不起作用,所以我加了一个CSS样式,设置了一下它的透明度使它变灰。

第二,实现“当前页右侧全部关闭”变灰不可用。

当一个Tab选项卡的右侧没有选项卡的时候,这个Tab选项卡就应该变灰不可用。程序实现也不难,只要获得最后一个Tab选项卡的标题和当前右键菜单所在的Tab选项卡的标题进行比较,如果一致,就把“当前页右侧全部关闭”变灰不可用。

  1. var tabs = $('#tabs').tabs('tabs');     //获得所有的Tab选项卡  
  2. var tabcount = tabs.length;  //Tab选项卡的个数  
  3. var lasttab = tabs[tabcount - 1];  //获得最后一个Tab选项卡  
  4. var lasttitle = lasttab.panel('options').tab.text(); //最后一个Tab选项卡的Title  
  5. var currtab_title = $('#mm').data("currtab");  //当前Tab选项卡的Title  
  6.  
  7.       if (lasttitle == currtab_title) {  
  8.           $('#mm-tabcloseright').attr("disabled""disabled").css({ "cursor""default""opacity""0.4" });  
  9.       }  
  10.       else {  
  11.           $('#mm-tabcloseright').removeAttr("disabled").css({ "cursor""pointer""opacity""1" });  
  12.       } 

第三,实现“当前页左侧全部关闭”变灰不可用。

这个跟第二个相反就行了,获得第一个Tab选项卡的标题和当前Tab选项卡的标题进行比较。

  1. var onetab = tabs[0];  //第一个Tab选项卡  
  2. var onetitle = onetab.panel('options').tab.text();  //第一个Tab选项卡的Title  
  3.      if (onetitle == currtab_title) {  
  4.           $('#mm-tabcloseleft').attr("disabled""disabled").css({ "cursor""default""opacity""0.4" });  
  5.       }  
  6.       else {  
  7.           $('#mm-tabcloseleft').removeAttr("disabled").css({ "cursor""pointer""opacity""1" });  
  8.       } 

最后,实现的效果如下图

 

除此之外
右侧

 

图一:除此之外全部关闭 图二:当前页右侧全部关闭

 

左侧

 

图三:当前页左侧全部关闭

上面实现了三种情况下的变灰不可用的效果,当鼠标放到上面点击,右键菜单就会消失,其实解决的办法也很简单,只要在对应的单击事件里重新绑定右键菜单即可,这里就不给出代码了。

作者:田念明

出处:http://www.cnblogs.com/nianming/archive/2011/07/25/2116146.html

【编辑推荐】

  1. 7月20款最新且极具创意的jQuery插件(附下载)
  2. 使用jQuery解析JSON数据
  3. 教你开发一款极为简单实用的jQuery图表插件
  4. jQuery实战开发表单验证与自动完成提示插件
  5. jQuery给力插件大阅兵
责任编辑:陈贻新 来源: 田念明的博客
相关推荐

2022-12-01 17:46:53

网页变灰功能前端

2010-03-16 09:41:32

Python不可用

2011-10-27 09:31:25

Windows 8 B

2023-11-22 15:34:41

oracleSQL数据库

2009-12-24 10:04:31

WPF右键菜单

2022-05-18 07:44:13

自定义菜单前端

2011-07-14 09:31:22

Sql Server属性ErrorLogF注册表

2009-09-08 10:54:42

支付宝Firefox LinLinux插件

2022-02-09 11:22:22

数据库MySQL连接池

2010-08-02 16:40:43

面试

2011-08-04 11:35:14

服务器注册表

2021-06-26 10:46:04

Windows 11操作系统IE浏览器

2021-09-21 10:41:19

iOS苹果系统

2011-04-21 15:22:27

ArcGIS Engi

2014-07-22 09:35:44

2011-02-23 09:29:29

Konqueror

2010-07-29 13:18:45

Flex右键菜单

2011-06-08 13:45:34

Oracle

2011-07-18 10:40:39

2022-06-06 12:01:28

VueRouter 4created
点赞
收藏

51CTO技术栈公众号