使用菜单组件Menu写一个右键菜单

第七节 Electron顶部菜单及右键菜单 今天说说顶部菜单和右键菜单,顶部菜单electron默认就有不过是英文的。右键可没有需要自己搞。我们看下默认的顶部菜单(如下图1),修改后效果如图2。以上就是今天要讲的内容,主要思路就是利用remote模块调用主进程模块。每天记录一点,助力成长!欢迎大家来浏览我的博客,如发现我有写错的地方,欢迎交流指正。 阅读详情

右键菜单:菜单组件Menu

关闭选项卡的右键菜单

第一种:

<div id="mm" class="easyui-menu" style="width:120px;">
    <div id="mm-tabclosrefresh" data-options="name:6">刷新</div>
    <div id="mm-tabclose" data-options="name:1">关闭</div>
    <div id="mm-tabcloseall" data-options="name:2">全部关闭</div>
    <div id="mm-tabcloseother" data-options="name:3">除此之外全部关闭</div>
    <div class="menu-sep"></div>
    <div id="mm-tabcloseright" data-options="name:4">当前页右侧全部关闭</div>
    <div id="mm-tabcloseleft" data-options="name:5">当前页左侧全部关闭</div>
    </div>

js判断

<script type="text/javascript">
	    //监听右键事件,创建右键菜单、myTab是我的选项卡的ID
             $('#myTab').tabs({
	       onContextMenu: function (e, title, index) {
	       	  e.preventDefault();
	            if (index > 0) { 
	               $('#mm').menu('show', {
	                   left: e.pageX,
	                   top: e.pageY
	               }).data("tabTitle", title);
	            } 
	       } 
	      
	   });
	
	   //右键菜单click
	   $("#mm").menu({
	       onClick: function (item) {
	           closeTab(this, item.name 
			);
	      }
	   });
	   
	   //删除Tabs
	     function closeTab(menu, type) {
	        var allTabs = $("#myTab").tabs('tabs');
	        var allTabtitle = [];
	        $.each(allTabs, function (i, n) {
	            var opt = $(n).panel('options');
	            if (opt.closable)
	                allTabtitle.push(opt.title);
	        });
	        var curTabTitle = $(menu).data("tabTitle");
	        var curTabIndex = $("#myTab").tabs("getTabIndex", $("#myTab").tabs("getTab", curTabTitle));
	        switch (type) {
	            case 1:
	                $("#myTab").tabs("close", curTabIndex);
	                return false;
	                break;
	            case 2:
	                for (var i = 0; i < allTabtitle.length; i++) {
	                    $('#myTab').tabs('close', allTabtitle[i]);
	                }
	                break;
	            case 3:
	                for (var i = 0; i < allTabtitle.length; i++) {
	                    if (curTabTitle != allTabtitle[i])
	                        $('#myTab').tabs('close', allTabtitle[i]);
	                }
	                $('#myTab').tabs('select', curTabTitle);
	                break;
	            case 4:
	                for (var i = curTabIndex; i < allTabtitle.length; i++) {
	                    $('#myTab').tabs('close', allTabtitle[i]);
	                }
	                $('#myTab').tabs('select', curTabTitle);
	                break;
	            case 5:
	                for (var i = 0; i < curTabIndex-1; i++) {
	                    $('#myTab').tabs('close', allTabtitle[i]);
	                }
	                $('#myTab').tabs('select', curTabTitle);
	                break;
	            case 6: //刷新
	                var panel = $("#myTab").tabs("getTab", curTabTitle).panel("refresh");
	                break;
	        }
	    } 
    </script>

第二种:

<div id="mm" class="easyui-menu">
	<div id="closeCurrent" data-options="iconCls:'icon-no'">关闭当前</div>
	<div id="closeOthers" data-options="iconCls:'icon-no'">关闭其它</div>
	<div id="closeAll" data-options="iconCls:'icon-no'">关闭所有</div>
</div>

js判断

$('#myTab').tabs({
	    onContextMenu: function(e, title, index){
	    	e.preventDefault();
	    //选中标签
	    $('#myTab').tabs('select',index);
	    //显示右键菜单
	    	$('#mm').menu('show', {
	     	left: e.pageX,
	     	top: e.pageY
	    	}) ;
	    }
	});
	//为每个菜单绑定点击事件
	  //关闭选中的标签
	  $("#closeCurrent").click(function(){
		   //获取选中的标签索引
		   var tab = $('#myTab').tabs('getSelected');
		   var index = $('#myTab').tabs('getTabIndex',tab);
		   $("#myTab").tabs("close",index);
	  });
	   //关闭选中标签之外的标签
	   $("#closeOthers").click(function(){
		    //获取所有标签
		    var tabs = $("#myTab").tabs("tabs");
		    var length = tabs.length;
		    //获取选中标签的索引
		    var tab = $('#myTab').tabs('getSelected');
		    var index = $('#myTab').tabs('getTabIndex',tab);
		    //关闭选中标签之前的标签
		    for(var i=0;i<index;i++){
		    	$("#myTab").tabs("close",0);
		    }
		    //关闭选中标签之后的标签
		    for(var i=0;i<length-index-1;i++){
		     	$("#myTab").tabs("close",1);
		    }
	   });
	   //关闭所有标签
	   $("#closeAll").click(function(){
		    var tabs = $("#myTab").tabs("tabs");
		    var length = tabs.length;
		    for(var i=0;i<length;i++){
		     	$("#myTab").tabs("close",0);
		    }
	   }); 



Vue3使用递归组件封装El-Menu多级菜单 【代码】Vue3使用递归组件封装El-Menu菜单。 阅读详情

相关推荐

12 使用Vue+Vue-router+el-menu实现菜单功能实战

我们将继续维护添加Vue-router的路由数据,借助ElementUI的el-munu组件,来实现左侧菜单功能的实战,并自己实现一个el-menu组件

xingyu_qie的专栏 9570

Vue 中实现动态右键菜单

实现一个动态右键菜单。这个菜单能够根据用户的点击位置动态调整其显示位置,确保菜单始终在浏览器窗口的可视区域内。这样的实现可以提升用户体验,使应用更加友好和易用。

weixin_71329368的博客 2451

鸿蒙界面开发——组件(5):菜单Menu & 绑定菜单

不支持作为普通组件单独使用。Menu 以垂直列表形式显示的菜单。包含MenuItem、MenuItemGroup子组件。布局过程中,期望每个菜单项的宽度一致。若子组件设置了宽度,则以尺寸计算规则为准。不设置宽度的情况:菜单组件会对子组件MenuItem、MenuItemGroup设置默认2栅格的宽度,若菜单项内容区比2栅格宽,则会自适应撑开。设置宽度的情况:菜单组件会对子组件MenuItem、MenuItemGroup设置减去padding后的固定宽度。

littleyy666的博客 1452

在vue中点击右键出现自定义操作菜单

在网页中我们也希望可以像桌面软件一样,点击右键后出现操作菜单,对选中的数据项进行相应的操作,接下来就为大家介绍使用原生vue进行右键出现菜单的方法,并贴上详细介绍的代码

qq_45803593的博客 6481

基于vue的鼠标右键菜单事件本组件提供右键菜单的显示和隐藏

基于 vue 的鼠标右键菜单事件,本组件提供右键菜单的显示和隐藏,可自定义菜单,以及菜单列的样式

原生Vue 实现右键菜单组件功能

主要介绍了Vue 原生实现右键菜单组件功能,本文给大家扩展知识点vue点击菜单以外区域,隐藏菜单操作,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

Android 菜单, option menu 和 context menu (右键菜单)

1. 菜单分为option menu 和 context menu (右键菜单)

kevin_xiang的专栏 1576

Tessent --- PDL

当关联的ICL模块是当前ICL顶部模块时,即当它与当前设计匹配时,只能iCall一个iTopProc。但是,可以在iTopProc内调用iCall iProc或iTopProc。为指定后续iProc命令引用的ICL模块,发出这个命令之后,随后定义的iProc都会对应的ICL模块进行定义。为后续iCall调用,当使用iCall命令调用该过程时,参数列表中的变量将被替换为iCall命令中指定的值。在调用iProc时,运行iProc内的命令。PDL是面向工程师的,工程师利用PDL语言,对ICL中的单元进行控制。

qiantianyiqian的博客 2786

el-table表格中加入右键新起页签(a标签实现右键在新标签页中打开链接)

1. 给需要点击的列添加slot,在slot自定义template中添加右键方法,将当前列表信息传入右键方法;项目需要要求在列表中,使用右键点击链接后,出现类似右键a标签,出现“在新标签页中打开链接”的功能;2. 点击右键显示右键菜单,鼠标选中或者点击空白地方取消右键隐藏菜单;

weixin_41982196的博客 769

深度学习十大算法之Word2Vec

Word2Vec的提出,标志着词嵌入技术的一次重大进步。Word2Vec是一种高效的词嵌入模型,由Google的研究团队于2013年开发。它使用一种称为神经网络的机器学习方法,通过学习大量文本数据,生成能够表达词语间丰富语义关系的词向量。Word2Vec的核心优势在于它能够捕捉到词语之间的细微关系。例如,在Word2Vec模型中,可以通过计算向量之间的距离来估计词语之间的相似度。这不仅能帮助理解语言的复杂性,还可以应用于各种NLP任务,如机器翻译和搜索引擎优化。

第欧根尼的酒桶的博客 1864

基恩士PLC编程避坑指南:局部变量@前缀的3个隐藏陷阱与实战解决方案

本文深入剖析了基恩士PLC编程中使用@前缀创建局部变量的三大隐藏陷阱,包括在线调试时的数据丢失、数据类型冲突以及子程序复用时的地址覆盖问题。针对每个陷阱,提供了预定义变量、强类型规范和基址参数传递等实战解决方案,帮助中高级工程师提升代码健壮性与可维护性。

weixin_29171087的博客 102

AntDesignVue 解决Tab内Table右键菜单不能显示问题

AntDesignVue 解决Tab内Table右键菜单不能显示问题 话不多说,代码如下 <template> <a-card style="height: 662.97px"> <a-tabs defaultActiveKey="1"> <a-tab-pane tab="测试1" key="1"> <a-table :columns="columns" :rowKey="r

sinat_42230729的博客 1781

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

vue vxe-context-menu 如何给任意组件使用右键菜单,全局右键菜单

VxeUI 提供了全局右键菜单功能,支持在任何组件中调用。通过 VxeUI.contextMenu.open() 方法可手动指定坐标打开菜单,而 VxeUI.contextMenu.openByEvent() 则能自动基于事件对象定位。菜单支持多级嵌套结构,并可通过事件回调处理选项点击。树组件内置了右键菜单功能,通过 menuConfig 配置菜单项,menuClick 事件处理点击操作。这两种方式都能实现灵活的右键菜单交互,适用于各种业务场景。

我的博客 864

2D激光slam四种算法建图效果对比

2d激光slam四种算法建图比较

m0_73791170的博客 8448

Linux-RGMII PHY 88E1512 驱动调试记录

1. 简介 1)开发板平台:创龙 AM5728 (tl5728-easy-evm) 2)PHY芯片:Marvell 88E1512 88E1512和88E1510都是一个系列的phy,采用marvell的通用phy驱动,驱动源码路径如下:drivers/net/phy/marvell.c 2. 应用场景 1)系统框图 AM5728连接两个PHY,PHY0的工作模式是 RGMII to Copper (RGMII到电口),PHY1的工作模式是 RGMII to SGMII。 两个PHY与处理器的连接方式都是

weixin_40407893的博客 2万+

Python tkinter Menu菜单组件详解

python tkinter Menu详解

m0_67885783的博客 2818

【安全设备篇】HVV面试专题

还有就是这个可能是被访问的这个内网系统,本身业务系统存在业务逻辑问题,因为内网所布置的很多业务系统往往不会考虑一些安全性问题,比如在正常的业务逻辑请求中直接带了sql语句,就会触发设备规则产生告警,这一类是属于误报,然后会将此告警上报给研判人员,需要研判组专家和甲方客户确认下是否是该系统存在此业务逻辑问题,并且需要确认告警的源ip在此告警的时间段附近有没有进行操作过。天眼日志分析主要基于系统和应用程序的日志数据来识别安全威胁,而威胁感知则通过收集和分析多种来源的情报信息。理解威胁的性质和威胁背后的原理。

大河之犬的博客 7923

深入了解 AWT 中的 Menu(菜单)组件

在 Java 的图形用户界面(GUI)编程中,AWT(Abstract Window Toolkit)是最初的 UI 框架之一,尽管随着 Swing 和 JavaFX 的出现,AWT 的使用相对减少,但它依然是构建基本桌面应用程序的有效工具。在 AWT 中,菜单(Menu)是构建用户界面的重要元素之一,它允许用户与应用程序进行交互,执行不同的操作。本篇博客小编将深入探讨 Java AWT 中的菜单组件,讲解其基本概念、常用类、方法以及如何在 Java 应用中实现一个菜单。

2302_79376097的博客 1610

总结个人关于雷达样式的见解(脉内脉间调制)

概述 雷达有各种各样的脉内脉间调制样式,对于雷达的设计者来说,不外乎三个目的: 1、增加雷达性能,如提高测距精度,增大侦察距离等; 2、雷达的工作机制决定雷达必须采用此种样式的调制,如有些SAR雷达为保证径向测距精度,需要使用脉内宽带调制信号; 3、降低雷达被电子战装备截获的概率,也就是LPI设计。 对于雷达对抗方,则只会观察到信号存在脉内及脉间的调制。对于一般的雷达信号,通常只采用脉内调制,脉间频率调制,脉间PRI调制。 脉间调制类型 1、PD雷达的脉间特征 雷达进行脉间调制的主要是PRI..

年糕的博客 3万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

如何为antd的Tree组件添加右键菜单

本文介绍了两种为antd的Tree组件添加右键菜单的方法

astonishqft的博客 4330

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

vue+elementui Tree组件实现右键菜单

需求是tree组件实现新增与删除节点的功能,在查阅了很多文章之后,缝缝补补实现了功能 npm install @xunlei/vue-context-menu --save <div id="dataPage"> <el-tree id="el-tree" :data="flowTree.root" :props="flowTree.props" @node-click="selectFlow" @node-contextmenu="right

web小天地 3938

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

使用Menu创建顶部菜单栏和右键菜单栏

使用Menu创建顶部菜单栏和右键菜单栏

咬尾巴的猫在coding的博客 1138

Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane),TextArea右键菜单 组件使用案例

文章目录一:下拉式菜单的创建步骤:二:弹出式菜单的创建步骤:三:选项卡窗体: 菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中. 菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成。一般菜单栏放 Frame 窗口中,只要...

lingle1的博客 3728

vue vxe ui vxe-table 使用右键菜单详解

Vxe UI table 右键菜单使用详解。分享项目中比较常使用的右键菜单配置,在 vxe-table 使用右键菜单式非常简单的。几行配置就可以实现很强大,支持任意扩展的需求。

chenhdowue的博客 2834

Electron Menu菜单设置和右键设置

主进程代码: import { Menu, shell, ipcMain, BrowserWindow } from 'electron'; // normal (常规菜单项) // separator (分割线) // submenu (子菜单) // checkbox (复选菜单项) // radio (单选菜单项) const template = [ { label:...

RistonTea的博客 5143
上一篇: 在easyui里写一个连接数据库的二级联动
下一篇: Maven配置环境变量
XHui_Lin
博客等级 码龄10年 27粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值