当前位置: > > > jQuery - 右键菜单插件contextMenu使用详解4(禁用菜单、菜单项)

jQuery - 右键菜单插件contextMenu使用详解4(禁用菜单、菜单项)

九、禁用/启用菜单

菜单触发对象的 contextMenu() 方法可以传递个布尔值,用来表示是否启用菜单。
  • true:菜单可用
  • false:菜单禁用

1,效果图

  • 默认情况下右键点击“按钮1”会出现菜单。
  • 如果勾选“禁用”复选框,再次右键点击“按钮1”则不会出现菜单。

2,样例代码

<input id="checkbox1" type="checkbox" value="101"/>
<label for="checkbox1">禁用“按钮1”菜单</label>
<br><br>
<button class="context-menu-one">按钮1</button>

<script type="text/javascript">
  $(function() {
     //初始化菜单
     $.contextMenu({
         selector: '.context-menu-one',
         callback: function(key, options) {
             console.log("点击了:" + key);
         },
         items: {
             "edit": {name: "编辑", icon: "edit"},
         }
     });

     //复选框点击
     $('#checkbox1').on('click', function(e) {
       var isChecked = $(this).prop('checked');
       if(isChecked){
         $('.context-menu-one').contextMenu(false); //禁用菜单
       }else{
         $('.context-menu-one').contextMenu(true); //启用菜单
       }
     });
  });
</script>

十、禁用/启用菜单项

菜单项里有个 disabled 配置属性,表示该菜单项是否可用。

1,效果图

打开菜单后可以发现:“编辑”项可以使用,而“剪切”项变成灰色不可用。

2,样例代码

(1)我们可以直接设置 true 或者 false
<button class="context-menu-one">按钮1</button>

<script type="text/javascript">
  $(function() {
     //初始化菜单
     $.contextMenu({
         selector: '.context-menu-one',
         callback: function(key, options) {
             console.log("点击了:" + key);
         },
         items: {
             "edit": {name: "编辑", icon: "edit", disabled: false},
             "cut": {name: "剪切", icon: "cut", disabled: true},
         }
     });
  });
</script>

(2)当然也可以通过回调方法返回。
<button class="context-menu-one">按钮1</button>

<script type="text/javascript">
  $(function() {
     //初始化菜单
     $.contextMenu({
         selector: '.context-menu-one',
         callback: function(key, options) {
             console.log("点击了:" + key);
         },
         items: {
             "edit": {
               name: "编辑",
               icon: "edit",
               disabled: function(){ return false; }
             },
             "cut": {
               name: "剪切",
               icon: "cut",
               disabled: function(){ return true; }
             },
         }
     });
  });
</script>

十一、动态改变菜单项可用状态

1,效果图

  • 默认情况下,“剪切”项是灰色不可用的。
  • 点击“toggle”项,可以让“剪切”项在可用和不可用这两个状态间切换。

2,样例代码

<button class="context-menu-one">按钮1</button>

<script type="text/javascript">
  $(function() {
     //初始化菜单
     $.contextMenu({
         selector: '.context-menu-one',
         callback: function(key, options) {
             console.log("点击了:" + key);
         },
         items: {
             "edit": { name: "编辑", icon: "edit" },
             "cut": {
               name: "剪切",
               icon: "cut",
               disabled: function(key, opt) {
                    //this为触发对象的引用
                    return !this.data('cutDisabled');
                }
             },
             "toggle": {
                name: "Toggle",
                callback: function() {
                    //this为触发对象的引用
                    this.data('cutDisabled', !this.data('cutDisabled'));
                    return false;
                }
            }
         }
     });
  });
</script>
评论0