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


Posted in Javascript onSeptember 24, 2015

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

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

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

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

效果图:

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

图一:除此之外全部关闭

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

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

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

效果图:

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

 图二:当前页右侧全部关闭

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

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

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

最后,实现的效果如下图

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

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

上面实现了三种情况下的变灰不可用的效果,当鼠标放到上面点击,右键菜单就会消失,其实解决的办法很简单,希望这篇文章可以给大家带来启发。

Javascript 相关文章推荐
用javascript动态调整iframe高度的方法
Mar 06 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
Jun 24 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 Javascript
10个很棒的jQuery代码片段
Sep 24 #Javascript
JS模拟实现Select效果代码
Sep 24 #Javascript
JS基于面向对象实现的拖拽库实例
Sep 24 #Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
Sep 24 #Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
Sep 24 #Javascript
javascript同步服务器时间和同步倒计时小技巧
Sep 24 #Javascript
js中不同的height, top的区别对比
Sep 24 #Javascript
You might like
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
PHP如何使用Memcached
2016/04/05 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
python 全局变量的import机制介绍
2017/09/07 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
手机业务员岗位职责
2013/12/13 职场文书
电气工程师岗位职责
2014/01/01 职场文书
网络教育自我鉴定
2014/02/04 职场文书
总经理助理工作职责
2014/02/06 职场文书
父母对孩子的寄语
2014/04/09 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
校友回访母校寄语
2015/02/26 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers
SQL语句多表联合查询的方法示例
2022/04/18 MySQL