# Cabbage
**Repository Path**: xiaoyiXM/Cabbage
## Basic Information
- **Project Name**: Cabbage
- **Description**: 🥬 Cabbage.js 使右键菜单像卷心菜一样一层又一层,且可深度定义
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://www.gquery.net/plugins/cabbage/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-10-28
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Cabbage.js
🥬 Cabbage.js is a beautiful, elegant and convenient JavaScript plugin.
[https://gquery.net/plugins/cabbage](https://gquery.net/plugins/cabbage)
该插件由 Ganxiaozhe 开发,相比其他自定义右键菜单,卷心菜单更美观,且更易于使用。同时,支持无限套娃!你可以对任意元素进行菜单绑定,放心,这并不会造成冲突。
Cabbage.js 依赖 gQuery v1.4.2 及以上版本。
# 简介
```javascript
$(function(){
$('#ibanner').cabbage([
{text:'Cabbage.gQuery.js', func:function(){
gxz.alert({title:'Cabbage.gQuery.js',message:'多吃蔬菜🥬!!!'});
}},{break:true},
{text:'查询 "[:sel]"', selection:true, func:function(opts){
window.open("https://www.baidu.com/s?ie=UTF-8&wd="+opts.selText, "blank");
}},
{text:'卷心菜单',data:[
{text:'挺好吃'},{text:'不好吃'},
{text:'没吃过', data:[
{text:'真的假的', disable:true},{break:true},{text:'真的', data:[
{text:'???'}
]},{text:'假的'}
]}
]},
{text:'重新加载', func:function(){window.location.reload();}},
{text:'检查', func:function(){
console.log('当前元素:', this);
}},{break:true},{text:'gQuery Awesome', disable:true}
]);
});
```
绑定菜单后,你可以随时删、增、改整个菜单或某个选项内容:
```javascript
$('#ibanner')[0].gQueryData.cabbageMenu[7] = {
text:'gQuery Awesome', disable:false, data:[{text:'1', func:function(){alert(0);}},{text:'0'},{text:'1'}]
};
```
# 安装
你需要引入以下文件:(请勿在开发环境下使用压缩版本,否则将失去错误相关警告!)
```html
```
# 使用
Cabbage.js 通过 `$.fn.extend` 将其方法拓展进 gQuery 原型链,你可以直接通过 gQuery 选择器对单个或多个元素进行绑定。当要为全局进行菜单绑定时,请使用 `$('body')` 而非 `$(window)` 或 `$(document)`。
Cabbage.js 的配置肥肠直观,一个菜单即为一个数组对象,一个对象即为一个菜单选项。一个最简单的菜单可以是:`[{text:'Cabbage.gQuery.js'}]`,啊不对,应该是 `[]`。
没错,卷心菜也有奇淫巧技,可以传入一个空数组以屏蔽浏览器默认右键,其完整代码为:`$('body').cabbage([]);`
一个菜单选项有以下对象可选:
```javascript
{
// 显示的名字
text: '大白菜,人人爱',
// 为分割线
break: true,
// 不可点击
disable: true,
// 当选中内容后右键,此项才会被显示
selection: true
// 点击此项执行的函数
func: function(){...},
}
```
其中 text 支持特殊字符组合以变为相应变量,例如 [:sel] 在菜单项中将变为右键时选中的内容...
# License
[MIT](https://opensource.org/licenses/MIT)
Copyright (c) 2020-present, JU Chengren (Ganxiaozhe)