jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
167 lines (156 loc) • 6.52 kB
HTML
<html lang="en">
<head>
<title id='Description'>Tree Custom Element ContexMenu</title>
<meta name="description" content="This is an example of ContextMenu in Tree Custom Element." />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />
<link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../../styles/demos.css" type="text/css" />
<script type="text/javascript" src="../../../scripts/webcomponents-lite.min.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.elements.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxpanel.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxtree.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcheckbox.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxmenu.js"></script>
<script src="../../../scripts/demos.js"></script>
<script type="text/javascript">
JQXElements.settings['menuSettings'] =
{
width: 120, height: 56, autoOpenPopup: false, mode: 'popup'
};
window.onload = function() {
var myTree = document.querySelector('jqx-tree');
var myMenu = document.querySelector('jqx-menu');
myTree.selectItem(document.querySelector('#home'));
myTree.expandItem(document.querySelector('#solutions'));
document.addEventListener('contextmenu', event => {
event.preventDefault();
if ((event.target).classList.contains('jqx-tree-item')) {
myTree.selectItem(event.target);
var scrollTop = window.scrollY;
var scrollLeft = window.scrollX;
myMenu.open(event.clientX + 5 + scrollLeft, event.clientY + 5 + scrollTop);
return false;
} else {
myMenu.close();
}
});
myMenu.addEventListener('itemclick', event => {
var item = event.args.innerText;
var selectedItem = null;
switch (item) {
case "Add Item":
selectedItem = myTree.getSelectedItem();
if (selectedItem != null) {
myTree.addTo({ label: 'Item' }, selectedItem.element);
}
break;
case "Remove Item":
selectedItem = myTree.getSelectedItem();
if (selectedItem != null) {
myTree.removeItem(selectedItem.element);
}
break;
}
});
};
</script>
</head>
<body>
<div class="example-description">
Tree Custom Element with Context Menu.
</div>
<jqx-tree>
<ul>
<li id='home'>Home</li>
<li id='solutions'>
Solutions
<ul>
<li>Education</li>
<li>Financial services</li>
<li>Government</li>
<li id='manufacturing'>Manufacturing</li>
<li>
Solutions
<ul>
<li>Consumer photo and video</li>
<li>Mobile</li>
<li>Rich Internet applications</li>
<li>Technical communication</li>
<li>Training and eLearning</li>
<li>Web conferencing</li>
</ul>
</li>
<li>All industries and solutions</li>
</ul>
</li>
<li>
Products
<ul>
<li>PC products</li>
<li>Mobile products</li>
<li>All products</li>
</ul>
</li>
<li>
Support
<ul>
<li>Support home</li>
<li>Customer Service</li>
<li>Knowledge base</li>
<li>Books</li>
<li>Training and certification</li>
<li>Support programs</li>
<li>Forums</li>
<li>Documentation</li>
<li>Updates</li>
</ul>
</li>
<li>
Communities
<ul>
<li>Designers</li>
<li>Developers</li>
<li>Educators and students</li>
<li>Partners</li>
<li>
By resource
<ul>
<li>Labs</li>
<li>TV</li>
<li>Forums</li>
<li>Exchange</li>
<li>Blogs</li>
<li>Experience Design</li>
</ul>
</li>
</ul>
</li>
<li>
Company
<ul>
<li>About Us</li>
<li>Press</li>
<li>Investor Relations</li>
<li>Corporate Affairs</li>
<li>Careers</li>
<li>Showcase</li>
<li>Events</li>
<li>Contact Us</li>
<li>Become an affiliate</li>
</ul>
</li>
</ul>
</jqx-tree>
<jqx-menu settings="menuSettings">
<ul>
<li>Add Item</li>
<li>Remove Item</li>
</ul>
</jqx-menu>
</body>
</html>