在使用jquery插件contextMenu的时候,我希望可以动态改变菜单项的禁用启用状态,以下是原文地址http://www.hangge.com/blog/cache/detail_1833.html
在这篇文章中,提供的方法是这样的
点击toggle项,那么cut项的启闭状态就会改变。
我想问的是
1、this.data('cutDisabled', !this.data('cutDisabled'));是什么意思,看上去就像是创建了一个什么东西一样;
2、return !this.data('cutDisabled');是什么意思,感叹号加一个方法,不是很懂
希望大家不吝赐教!
html5允许你在一个标签上附加数据
比如
<div data-cutDisabled="true">...</div>
那么在div调用
this.data('cutDisabled')可返回data-cutDisabled的属性,也就是true
this.data('cutDisabled', !this.data('cutDisabled'))这一句中:
!this.data('cutDisabled')的意思是将this.data('cutDisabled')的结果取相反,相当于
(this.data('cutDisabled') == true ? false : true)
整个这一行的意思就是如果data-cutDisabled现在是ture,那么设置成 false,如果是false,那么设置成true
从字面理解cutDisabled的意思是,不允许剪切。
this.data() 这个方法类似于 jquery使用的$("xx").attr() 设置对象的指定属性的值
在这里 设置cutDisabled的值为false 对应的items中的cut就会被设置为disabled
如果设置editDisabled 为false 那么 对应的items中的edit功能就会被设置为disabled
至于为什么设置相应的属性为false 对应的功能就会变为disabled 应该是contextMenu中有监听对应属性变化的事件
你不用去关心它的事件 你只需要去设置对应属性的值就ok了