https://github.com/sydcanem/bootstrap-contextmenu
Context menu plugin for Twitter's Bootstrap framework
https://github.com/sydcanem/bootstrap-contextmenu
Last synced: 19 days ago
JSON representation
Context menu plugin for Twitter's Bootstrap framework
- Host: GitHub
- URL: https://github.com/sydcanem/bootstrap-contextmenu
- Owner: sydcanem
- Created: 2012-10-25T02:42:00.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2017-02-27T14:28:59.000Z (about 8 years ago)
- Last Synced: 2025-03-01T09:12:14.652Z (about 2 months ago)
- Language: HTML
- Homepage: http://sydcanem.com/bootstrap-contextmenu/
- Size: 297 KB
- Stars: 644
- Watchers: 59
- Forks: 192
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- jimsghstars - sydcanem/bootstrap-contextmenu - Context menu plugin for Twitter's Bootstrap framework (HTML)
README
Bootstrap Context Menu
======================#This project is unmaintained. Please use the alternative https://github.com/swisnl/jQuery-contextMenu.
I have an issue with the plugin but I would still like to use it.
-- Please fork the project and do your fixes.
Where can I get support if can't fix some issue?
-- You can check the issues page or pull request page if someone has a fix for your problem and merge it with your fork.
I still can't find fixes of my issues.
-- Get plenty of sleep. :)
## A context menu extension of Bootstrap made for everyone's convenience.
See a [demo page] [id].
[id]:http://sydcanem.github.io/bootstrap-contextmenu/Installation
------------`bower install bootstrap-contextmenu`
Note: Requires bootstrap.css
Usage
-----### Via data attributes
Add `data-toggle="context"` to any element that needs a custom context menu and via CSS set `position: relative` to the element.
Point `data-target` attribute to your custom context menu.
`
`### Via Javascript
Call the context menu via JavaScript:
```js
$('.context').contextmenu({
target:'#context-menu',
before: function(e,context) {
// execute code before context menu if shown
},
onItem: function(context,e) {
// execute on menu item selection
}
})
```### Options
`target` - is the equivalent of the `data-target` attribute. It identifies the html of the menu that will be displayed.
`before` - is a function that is called before the context menu is displayed. If this function returns false, the context menu will not be displayed. It is passed two parameters,
- `e` - the original event. (You can do an `e.preventDefault()` to cancel the browser event).
- `context` - the DOM element where right click occured.`onItem` - is a function that is called when a menu item is clicked. Useful when you want to execute a specific function when an item is clicked. It is passed two parameters,
- `context` - the DOM element where right click occured.
- `e` - the click event of the menu item, $(e.target) is the item element.`scopes` - DOM selector for dynamically added context elements. See [issue](https://github.com/sydcanem/bootstrap-contextmenu/issues/56).
### Events
All events are fired at the context's menu. Check out `dropdown` plugin for
a complete description of events.- `show.bs.context` - This event fires immediately when the menu is opened.
- `shown.bs.context` - This event is fired when the dropdown has been made visible to the user.
- `hide.bs.context` - This event is fired immediately when the hide instance method has been called.
- `hidden.bs.context` - This event is fired when the dropdown has finished being hidden from the user (will wait for CSS transitions, to complete).
Sample```js
$('#myMenu').on('show.bs.context',function () {
// do something...
});
```Example
-------Activate and specify selector for context menu
```js
$('#main').contextmenu({'target':'#context-menu'});
```Activate within a div, but not on spans
```js
$('#main').contextmenu({
target: '#context-menu2',
before: function (e, element, target) {
e.preventDefault();
if (e.target.tagName == 'SPAN') {
e.preventDefault();
this.closemenu();
return false;
}
return true;
}
});
```Modify the menu dynamically
```js
$('#main').contextmenu({
target: "#myMenu",
before: function(e) {
this.getMenu().find("li").eq(2).find('a').html("This was dynamically changed");
}
});
```Show menu name on selection
```js
$('#main').contextmenu({
onItem: function(context, e) {
alert($(e.target).text());
}
});
```### Nice to have features:
- Close and open animations
- Keyboard shortcuts for menus### License
MIT