ContextMenu in React.
forked from https://github.com/vkbansal/react-contextmenu
##Feature
you can custeom Icons
callback will return DOM element.
npm install --save react-contextmenu-yu
auto bind to parentNode,auto bind to document
see examples/index.js
you have to add css manually:(webpack)
you need config webpack /*.file.css/ loader
import s from "style!raw!react-contextmenu-yu/modules/default-react-context-menu.file.css"
<div!!!!parentNode!!!!!><ContextMenu><MenuItemonClick={this.handleClick}data={{item: "item 1"}}><iclassName="material-icons">account_circle</i>
Menu Item 1
<iclassName="material-icons">all_out</i></MenuItem><MenuItemonClick={this.handleClick}data={{item: "item 2"}}>Menu Item 2</MenuItem><SubMenutitle="A SubMenu"><span>ASubMenu</span><iclassName="material-icons">alarm_add</i><MenuItemonClick={this.handleClick}data={{item: "subitem 1"}}>SubItem 1</MenuItem><SubMenutitle="Another SubMenu"><iclassName="material-icons">all_out</i><MenuItemonClick={this.handleClick}data={{item: "subsubitem 1"}}>SubSubItem 1</MenuItem><MenuItemonClick={this.handleClick}data={{item: "subsubitem 2"}}>SubSubItem 2</MenuItem></SubMenu><SubMenutitle="Yet Another SubMenu"><MenuItemonClick={this.handleClick}data={{item: "subsubitem 3"}}>SubSubItem 3</MenuItem><MenuItemonClick={this.handleClick}data={{item: "subsubitem 4"}}>SubSubItem 4</MenuItem></SubMenu><iclassName="material-icons">alarm_add</i><MenuItemonClick={this.handleClick}data={{item: "subitem 2"}}>SubItem 2</MenuItem></SubMenu></ContextMenu></div>onClick(click-event,data,srcElement)
srcElement come from rightClick
I have no idea of reusing Menus.
you can create one ContextMenu,then use jquery to bind events to TreeElement manually.
create too much Menus will slow browser, but pass args easier.
like this:
see example:
$(".tree").bind("contextmenu",function(event){getElementById(ContextMenuID).dispatchEvent("contextmenu",event,$(this));};$(".gg").bind("contextmenu",function(event){event.stopPropagation();event.preventDefault();varevt=document.createEvent('HTMLEvents');evt.initEvent("contextmenu",true,true);document.getElementById("mainContextMenu").dispatchEvent(evt,"contextmenu");console.log("bindding");});