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

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

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

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

当只打开一个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样式,设置了一下它的透明度使它变灰。

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

当一个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" });
      }

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

这个跟第二个相反就行了,获得第一个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" });
      }

最后,实现的效果如下图

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

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

时间: 2024-11-05 12:24:59

实现JQuery EasyUI右键菜单变灰不可用效果的相关文章

jQuery EasyUI 右键菜单--关闭标签/选项卡

目录结构: noContextMenu.js 文件内容如下: $(function(){ //屏蔽右键菜单 $(document).bind("contextmenu", function(e){ return false; }); }); 效果图: 方式 一: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOC

Jquery Easy-UI 树形菜单的运用

一.树形菜单的右键标签 期中增加同级机构.增加下属机构.修改.删除分别是调用了addNode(),del()等方法. <div id="menuTree" class="easyui-menu" style="width: 120px;"> <SecurityTag:Authorize ID="Authorize12" runat="server" FunctionID="fun

新手学Jquery EasyUI---Datagrid右键菜单

最近在学Jquery EasyUI,现在来说一说EasyUI的DataGrid,一般当我们在实现前端界面的时候,经常在DataGrid 的上面或者后面加一些按钮,方便用户进行一些添加,删除,编辑等功能 用户在每次使用的时候,都需要去先选中一条或者多条数据,然后在去点按钮进行相关操作,这样其实还是很麻烦 的,做项目的过程中,为了用户着想,做了一个右键菜单,用户想要删除或者编辑某一条数据直接在其位置上右键 就可以.下面上代码: HTML 代码 <div id="menu" class

[xPlugins] jQuery Contextmenu右键菜单

[2012-04-12] Contextmenu 右键菜单 v0.1 版本发布 [功能] 在特定区域弹出右键菜单 [功能] 可以在弹出右键菜单区域内,再屏蔽某个小区域. [功能] 有两种方式添加右键菜单项,参数配置添加和指定ID项. [功能] 支持事件回调,有两种,一种以参数配置方式对应回调,指定ID项统一回调,可根据设置链接标签区别. [2012-04-29]Contextmenu 右键菜单 v0.2版本更新 [修正] 修正了指定ID添加内容在不存在时的bug. [新增] 新增了菜单失效后变成

jquery实现右键菜单

1 <!DOCTYPE html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <title>jQuery自定义区域的鼠标右键菜单</title> 5 <style type="text/css"> 6 #mask{position: absolute;l

jquery 自定义右键菜单

如果要自定义右键菜单,那么就需要禁止原本的右键菜单,代码如下 document.oncontextmenu = new Function("return false;");//禁止右键默认菜单 该自定义右键菜单是基于jquery上的 html+css: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&g

Jquery contentMenu右键菜单 当某个事件出发时才显示菜单

公司项目有一个地方用到了右键菜单,后来提出需求说不再编辑状态下不要弹出菜单,我就去网上找api,开始进错了网站http://swisnl.github.io/jQuery-contextMenu/index.html(里面名称什么的都一样),搞了好久发现一点反应没有,还不报错,后来在js里面发现他的官网,坑哭了!!! 官网http://www.trendskitchens.co.nz/jquery/contextmenu/  内容不多,但是够用了!! 实现这个功能的主要方法就是onContext

Jquery 屏蔽右键菜单,识别右键事件

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="a" style="height: 400px;width: 700px;background-color: blue;"></div

jQuery自定义右键菜单

首先看下效果,效果在最下面: 代码: 1 body { 2 font-size: 12px; 3 margin: 0px; 4 padding: 0px; 5 } 6 form,div,ul,li { 7 margin: 0px; 8 padding: 0px; 9 list-style-type: none; 10 overflow: hidden; 11 } 12 h1,h2,h3,h4,h5 { 13 font-size: 12px; 14 margin: 0px; 15 padding: