ContextJS is a lightweight solution for contextual menus. Currently, there are two versions.

The first is to be used with Twitters Bootstrap   (bootstrap.css specifically). If you do not use or want to use bootstrap.css, there is a standalone stylesheet to give the menu it's base styles.

Features

  • Linted: Valid JS
  • Can be used with or without Twitters Bootstrap.css
  • Event Based Links
  • Anchor Links
  • Headers
  • Dividers
  • Recursive Menus (infinite depth)
  • Vertical Space Detection (turns into a "dropup")
  • Horizontal Space Detection (Drops to the left instead of right)
  • Add/Delete menus Dynamically

在线实例

实例演示

使用方法

  1. context.init({
  2. fadeSpeed: 100,
  3. filter: function ($obj){},
  4. above: 'auto',
  5. preventDoubleContext: true,
  6. compress: false
  7. });
复制

Headers

  1. {
  2. header: 'My Header Title'
  3. }
复制

Anchor Links

  1. {
  2. text: 'My Link Title',
  3. href: 'http://contextjs.com/',
  4. target: '_blank'
  5. }
复制

Dividers

  1. {
  2. divider: true
  3. }
复制

Event Based Actions

  1. {
  2. text: 'Event Based Link',
  3. action: function(e){
  4. e.preventDefault();
  5. alert('Do Something');
  6. }
  7. }
复制

Sub-Menus

  1. {
  2. text: 'My Sub-menu',
  3. subMenu: [menuObjects]
  4. }
复制

Tracking Links with Google Analytics

  1. {
  2. text: 'context.js',
  3. href: 'http://contextjs.com/context.js',
  4. target:'_blank',
  5. action: function(e){
  6. _gaq.push(['_trackEvent', 'ContextJS Download', this.pathname, this.innerHTML]);
  7. }
  8. }
复制

参数详解

Paramater Type Default Description
fadeSpeed int 100 The speed in which the context menu fades in (in milliseconds)
filter function null Function that each finished list element will pass through for extra modification.
above string || boolean 'auto' If set to 'auto', menu will appear as a "dropup" if there is not enough room below it. Settings to true will make the menu a "popup" by default.
preventDoubleContext boolean true If set to true, browser-based context menus will not work on contextjs menus.
compress boolean false If set to true, context menus will have less padding, making them (hopefully) more unobtrusive

Updating Settings

  1. context.settings({initSettings});
复制
Paramater Type Default Description
settings object null The init settings can be placed in here to update context menus written to the DOM. Changing settings between attaching menus will give the menus their own options.

Attaching

  1. context.attach('#download', [menuObjects]);
复制
Paramater Type Default Description
selector string null The jQuery (or css) selector of the element you want to apply the context menu to
menuObjects array null An array of objects that define the menus structure

Destroying

  1. context.destroy('#download');
复制
Paramater Type Default Description
selector string null The jQuery (or css) selector of the element you want to remove the context menu from

最新文章

  1. 你可能没注意的CSS单位
  2. select、poll、epoll之间的区别总结[整理]
  3. Oracle 建立索引及SQL优化
  4. phalcon: update修改数据却变成了insert插入数据
  5. [转]为什么不能用memcached存储Session
  6. C#与数据库访问技术总结(十二)数据阅读器(DataReader)2
  7. iOS开发-xCode代码格式化xAlign
  8. C#通过RFC调用SAP
  9. Enterprise Library系列文章目录(转载)
  10. 在虚拟机上安装红帽Linux.5.5.for.x86.服务器版系统(按针对安装oracle 10g作的配置)
  11. sysfs实例
  12. c#发送http请求注意
  13. 优化UI控件 【译】
  14. JS封装运动框架(另一种写法)
  15. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
  16. Android Gradle 学习笔记(一):Gradle 入门
  17. 关于leal和mov
  18. 用Eclipse上传项目到github
  19. 完整的Django入门指南学习笔记5
  20. BZOJ4053 : [Cerc2013]Subway

热门文章

  1. 解析大型.NET ERP系统 企业信息化实施人员工具箱
  2. MIME参考列表
  3. NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版
  4. 浅谈A/B测试里常见的辛普森悖论,企业决策者必看
  5. UML学习总结
  6. 轻松自动化---selenium-webdriver(python) (二)
  7. 使用etcd+confd管理nginx配置
  8. java并发编程(3):ThreadLocal
  9. MVC自动生成数据库【Code-FIrst方式】
  10. [锋利JQ]-图片提示效果