jQuery MiniUI

标题: 事件的移除问题 [打印本页]

作者: a282919088    时间: 2013-8-16 15:41:20     标题: 事件的移除问题

最近在做权限控制功能,当我只知道一个datagrid的id时候,我要移除它的rowdblclick事件,发现不能实现.
datagrid.un("rowdblclick",fn);   fn方法是我不知道的.

1.为什么当移除一个事件的时候必须要传递移除事件对应的方法,如果我没传递是不是可以设定为删除rowdblclick的所有绑定事件.我觉得可以参考下jquery的unbind方法

2.如果一定要传递删除事件的方法名,那么是不是在miniui.js里面可以提供.因为在div转换为mini-datagrid对象的时候,你们已经获取了onrowdblclick事件的方法了.本里我是想用属性方式获取datagrid里面的onrowdblclick值,但是你们在转换对象的时候已经把不是div的属性删除了,所以我无法获取.

作者: niko    时间: 2013-8-16 15:46:05


  1. var fn = function(){
  2. }

  3. grid.on("rowclick", fn); //绑定事件
  4. grid.un("rowclick", fn); //接触绑定
复制代码

解除事件绑定,必须要传递一个处理函数,所以绑定的时候不要是匿名函数。



作者: a282919088    时间: 2013-8-16 15:54:02

niko 发表于 2013-8-16 15:46
解除事件绑定,必须要传递一个处理函数,所以绑定的时候不要是匿名函数。

[attach]2570[/attach]
这个是我们权限控制的配置.操作代码可以理解为id, 我们在后台只需要这样配置..
剩下的就根据当前用户拥有哪些权限由框架去控制是否可以操作"按钮",表格的双击弹出事件,
因为这个是针对于整个系统的权限控制,所以如果只是一个datagrid的id.我是没法知道它的方法名的

作者: niko    时间: 2013-8-16 16:20:07

你这个场景,根本不需要解除绑定事件处理。

var fn = function(){
    if(isFunction("add")==false) return;
    ...
}
grid.on("rowclick", fn);

应该在处理函数内部,判断权限是否具备,只有具备再执行下面的代码;不具备就退出。
作者: a282919088    时间: 2013-8-16 16:31:42

niko 发表于 2013-8-16 16:20
你这个场景,根本不需要解除绑定事件处理。

var fn = function(){

我的绑定事件是在div里面加的onrowdblclick属性,而且如果你那样做的话,就会给开发人员增加负担.每个页面的开发人员都要加一堆的判断条件.我们现在系统已经开发完成了,权限是后面补充的.只需要在后台把对象id 和控制类型设置就好..模块开发人员不需要做任何事情




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2