<!DOCTYPE html> <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <title>Bootstrap</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <!-- Le styles --> <link href="http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.css" type="text/css"> <style> body { padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */ } </style> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet"> <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!-- Le fav and touch icons --> </head> <body onload="prettyPrint()"> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="brand" href="https://github.com/sydcanem/bootstrap-contextmenu">Context Menu Plugin Extension</a> </div> </div> </div> <div class="container"> <div class="span7"> <h1>Demo</h1> <p>Right click inside the box to trigger the menu</p> <h5>Demo 1</h5> <p>Using <code>data-toggle="context"</code> to attach a context-menu</p> <!-- Element div that needs a custom context menu --> <div id="context" data-toggle="context" data-target="#context-menu" style="height:300px;width:650px;border:1px solid #ddd"> </div> <!-- Your custom menu with dropdown-menu as default styling --> <div id="context-menu"> <ul class="dropdown-menu" role="menu"> <li><a tabindex="-1">Action</a></li> <li><a tabindex="-1">Another action</a></li> <li><a tabindex="-1">Something else here</a></li> <li class="divider"></li> <li><a tabindex="-1">Separated link</a></li> </ul> </div> <h5>Demo 2</h5> <div id="main" data-toggle="context">This is an area where the context menu is active <span style="background-color: #cecece">However, we wont allow it here.</span> But anywhere else in this text should be perfectly fine. This one is started with only javascript</div> <div id="context-menu2"> <ul class="dropdown-menu" role="menu"> <li><a tabindex="-1">Action</a></li> <li><a tabindex="-1">Another action</a></li> <li><a tabindex="-1">Something else here</a></li> <li class="divider"></li> <li><a tabindex="-1">Separated link</a></li> </ul> </div> <h5>Demo 3</h5> <p>Show the menu name of the item that was selected</p> <!-- Element div that needs a custom context menu --> <div id="context2" data-toggle="context" style="height:300px;width:650px;border:1px solid #ddd"> </div> <h2>Usage</h2> <h3>Via data attributes</h3> <p>Add <code>data-toggle="context"</code> to an element that needs a context menu.</p> <pre class="prettyprint linenums"> <div id="context" data-toggle="context" data-target="#context-menu"> ... </div></pre> <p>Your menu <code><ul></code> element must have a <code>dropdown-menu</code> class. <pre class="prettyprint linenums"> <div id="context-menu"> <ul class="dropdown-menu" role="menu"> <li><a tabindex="-1" href="#">Action</a></li> ... <li><a tabindex="-1" href="#">Separated link</a></li> </ul> </div></pre> <h3>Via Javascript</h3> <p>Call the context menus via Javascript:</p> <pre class="prettyprint linenums"> $('.context').contextmenu();</pre> </div> <!-- /container --> <!-- Le javascript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script> <script src="bootstrap-contextmenu.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.js"></script> <script type="text/javascript"> // Demo 2 $('#main').contextmenu({ target: '#context-menu2', before: function (e) { // This function is optional. // Here we use it to stop the event if the user clicks a span e.preventDefault(); if (e.target.tagName == 'SPAN') { e.preventDefault(); this.closemenu(); return false; } this.getMenu().find("li").eq(2).find('a').html("This was dynamically changed"); return true; } }); </script> <script type="text/javascript"> // Demo 3 $('#context2').contextmenu({ target: '#context-menu2', onItem: function (context, e) { alert($(e.target).text()); } }); $('#context-menu2').on('show.bs.context', function (e) { console.log('before show event'); }); $('#context-menu2').on('shown.bs.context', function (e) { console.log('after show event'); }); $('#context-menu2').on('hide.bs.context', function (e) { console.log('before hide event'); }); $('#context-menu2').on('hidden.bs.context', function (e) { console.log('after hide event'); }); </script> </body></html>