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,在属性窗口中,选 ...
随机推荐
- PAT 1003. Emergency (25)
1003. Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...
- 【转载】ShowWindow函数
ShowWindow的API函数是显示窗体,但它在第一次调用和以后的调用是有差别的.第一次调用时,它的输入參数nCmdShow是须要输入WinMain函数里传入来的nCmdShow參数,而不能是其他參 ...
- FormMove
private { Private declarations } procedure WMMOVE(var Msg: TMessage); message WM_MOVE; proced ...
- Percona-toolkit的安装和配置-杨建荣的学习笔记
http://blog.itpub.net/23718752/viewspace-2091818/#rd
- 15 Linux Split and Join Command Examples to Manage Large Files--reference
by HIMANSHU ARORA on OCTOBER 16, 2012 http://www.thegeekstuff.com/2012/10/15-linux-split-and-join-co ...
- iOS9适配
一.App Transport Security xcode7安装后,你会发现ios9之后后默认所有http请求都无法继续有效,但是基于现状,我们并不能这么快改成https请求,所以基本上大多数app ...
- 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据
瀑布流加载显示数据,在当下已经用的很普遍,尤其是我们在做网上商城时,在产品列表页面已经被普遍使用. 对于实现瀑布流布局的解决方案主要有以下两种方式: 1.对每一条显示数据使用绝对定位+浮动的方式,这样 ...
- Android(java)学习笔记162:Android启动过程(转载)
转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...
- 删除主目录下的.ssh目录下文件对boot2docker启动影响
现象: 1) boot2docker ssh需要输入密码 2) boot2docker start 或 up 需要输入密码 解决方法: 1)删除 /Users/sunzhaoyu/.boot2dock ...
- TCP三次握手/四次握手
TCP连接三次握手 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样 ...