Jquery EasyUI中treegrid的中右键菜单和一般按钮同时绑定事件时的怪异事件
做个项目使用jquery easyui来做前端,也许是对此不是很熟悉,总是发现一些不可理解的事件。
主要源代码如下:
<script type="text/javascript">
$(function(){
var access_editingId; //当前正在编辑的
var access_lastChildName;
var access_addclick=0; //点击了添加
$('#access_tg').treegrid({
//右键
onContextMenu:function(e,row){
e.preventDefault(); //该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)
$('#access_tg').treegrid('select',row.id);
$('#access_menu').menu('show',{
left: e.pageX,
top: e.pageY
});
}
});
$("#access_lb_new,#access_menu_new").click(function(){
access_new();
});
function access_new(){
var tt=$('#access_tg');
var row = tt.treegrid('getSelected'); //获取选中的标签项
tt.treegrid('reload',row.id); //reload为异步操作,如果直接读取子节点会无内容
} });
</script>
<div class="container">
<div id="access_menu" class="easyui-menu" style="width:100px;">
<div id='access_menu_edit'>编辑本节点</div>
<div id='access_menu_del'>删除本条目</div>
<div id='access_menu_refresh'>刷新节点</div>
<div id='access_menu_new'>新增子节点</div>
</div>
<table id="access_tg" title="权限分配" class="easyui-treegrid" style="height:500px"
url="/Admin/Access/treegrid" toolbar="#access_toolbar"
rownumbers="true" idField="id" treeField="description">
<thead>
<tr>
<th field="id" width="40">ID</th>
<th field="description" width="200" editor='text'>描述</th>
<th field="name" width="50">名称</th>
<th field="action" width="200" editor='text'>动作</th>
<th field="role" width="200" editor='text'>角色</th>
<th field="state" width="200" editor='text'>状态</th>
<th field="parentid" width="200" editor='text'>父层</th>
</tr>
</thead>
</table>
<div style="height:5px"></div>
<div id="access_toolbar" >
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" id="access_lb_new">
</div>
</div>
显示界面如下:
1、点击几次权限分配按钮,可以打开“权限分配”页面,然后点击关闭,再次打开。
2、在第一条上右键菜单,点击“新增子节点”,然后树形结构变成了如下图,发现树形结构的子节点重复出现了多次。

3、关闭权限分配按钮,点击上面的“+”形图标,树形结构展开,可以发现子节点完全是正常的。

4、从源代码可以看到,点击“新增子节点”与点击上面的“+”形图标绑定的事件是相同的,但是出来的结果却不一样。
$("#access_lb_new,#access_menu_new").click(function(){
access_new();
});
5、查看发送系统执行的日志可以发现,第一次右键菜单的时候发送了多次获得子节点的请求。

6、将两个按钮的事件绑定代码分开写,如下,重复操作以上动作,发现结果就完全正常了,没有出现多个请求与子节点重复的情况。
$("#access_lb_new").click(function(){
access_new();
});
$("#access_menu_new").click(function(){
access_new();
});
7、同时,我尝试了以第4点同样的方式绑定两个一般按钮(非右键弹出菜单),也不会出现子节点重复出现的问题。由此可见,只有在treegrid使用右键弹出菜单,并且将右键菜单的事件同时绑定在另外一个按钮上的时候,才会出现这种奇怪的现象。
Jquery EasyUI中treegrid的中右键菜单和一般按钮同时绑定事件时的怪异事件的更多相关文章
- qt中qlineedit和qtextedit右键菜单翻译成中文
没有linguist和lupdate等命令需要安装Linguist: 在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtco ...
- 第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件
jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使 ...
- jquery绑定事件时如何向事件函数里传参数
jquery绑定事件时如何向事件函数里传参数 jquery绑定事件时如何向事件函数里传参数 举例子说明: 步骤1: var button=$('<button type="button ...
- jQuery EasyUI DataGrid在MVC中的运用-基本属性并实现分页
※ datagrid的基本属性和方法 ※ datagrid分页在前后台的实现 最终效果: 与视图显示对应的view model public class Book public strin ...
- Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片
场景 怎样在Winform程序中添加鼠标右键时使子选项显示图片. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程 ...
- 使用easyui为tab页增加右键菜单
在使用easyui进行上左右布局一文中,我们已经使用easyui搭建起了一个简单的上左右布局.在使用的过程中,我们经常会遇到tab页打开的太多,但只能一个一个的关闭的烦恼,这个时候有没有想到eclip ...
- EasyUI 的Tab 标签添加右键菜单
样式: 主要提供右键功能代码. (只需要提供你需要的js和css就行了) <!doctype html> <html> <head> <base href=& ...
- 为EasyUI 的Tab 标签添加右键菜单
在网上看了很多demo 自己实现了一个效果如下 ps jquery1.7.2 jQuery EasyUI 1.3.6easyui QQ群:15129679 <!doctype html> ...
- DevExpress中GridView上的右键菜单
1. 先拖一个PopupMenu和BarManage控件,设置PopupMenu的Manager属性为BarManager. 2. 先选中GridView,不是GridControl,在属性窗口中,选 ...
随机推荐
- Java用OpenOffice将word转换为PDF
一. 软件安装以及jar包下载 官网的下载地址如下(英文): OpenOffice 下载地址http://www.openoffice.org/ JodConverter 下载地址http: ...
- HTML5 Canvas动画效果演示
HTML5 Canvas动画效果演示 主要思想: 首先要准备一张有连续帧的图片,然后利用HTML5 Canvas的draw方法在不同的时间 间隔绘制不同的帧,这样看起来就像动画在播放. 关键技术点: ...
- Extended ComboBox添加图标
Extended ComboBox添加图标 关键点 实现过程 // MFC02Dlg.h : header fileCImageList m_imageList; // MFC02Dlg.cpp : ...
- 111_leetcode_Best Time to Buy and Sell Stock III
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- iOS开发经验总结(上)
在iOS开发中经常需要使用的或不常用的知识点的总结,几年的收藏和积累(踩过的坑). 一. iPhone Size 手机型号 屏幕尺寸 iPhone 4 4s 320 * 480 iPhone 5 5s ...
- JSTL-core核心代码标签库中的forEach,remove, forTokens,choose,when,otherwise,redirect 标签
<%@ page language="java" import="java.util.*, cn.hncu.domain.*" pageEncoding= ...
- HD1285(拓扑排序)
package cn.hncu.dataStruct.search.topSort; import java.util.Scanner; public class Hdu1285 { static S ...
- Dom4j 学习笔记
dom4j 是一种解析 XML 文档的开放源代码 XML 框架.dom4j下载地址 本文主要记载了一些简单的使用方法. 一.xml文件的解析 dom4j既可以解析普通的xml文件,也可以解析一个Inp ...
- iOS 跳转至 指定 StoryBoard 中 指定的 Scene
UIStoryboard *stryBoard=[UIStoryboard storyboardWithName:@"second" bundle:nil]; UIViewCont ...
- install lua client for redis-server on Mac
1. lua client library for redis-server https://github.com/nrk/redis-lua 2. dependent luasocket https ...