In this post, we’ll create a simple Navigation with the jqxTree and jqxSplitter widgets. When the user selects a tree item, a content panel will be updated depending on the selected item.
1. Include the JavaScript and CSS files.
<link rel="stylesheet" href="jqwidgets/styles/jqx.base.css" type="text/css" /><script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script><script type="text/javascript" src="jqwidgets/jqxcore.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/jqxsplitter.js"></script>
2. Add the HTML structure. The Splitter’s structure requires a container DIV tag and at least 2 nested DIV tags. In the first nested DIV, we add the Tree. Tre second nested DIV is for the content panel.
<div id="splitter"> <div> <div style="border: none;" id='jqxTree'> <ul> <li id="Mail" item-expanded='true'> <img style='float: left; margin-right: 5px;' src='../../images/mailIcon.png' /><span item-title="true">Mail</span> <ul> <li id="Calendar" item-expanded='true'> <img style='float: left; margin-right: 5px;' src='../../images/calendarIcon.png' /><span item-title="true">Calendar</span> </li> <li id="Contacts"> <img style='float: left; margin-right: 5px;' src='../../images/contactsIcon.png' /><span item-title="true">Contacts</span> </li> <li id="Inbox"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true"> <span>Inbox</span><span style='color: Blue;'> (3)</span></span> <ul> <li id="jQWidgets"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">jQWidgets</span> <ul> <li id="Admin"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Admin</span> </li> <li id="Corporate"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Corporate</span> </li> <li id="Finance"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Finance</span> </li> <li id="Other"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Other</span> </li> </ul> </li> <li id="Personal"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Personal</span> </li> </ul> </li> <li id="Deleted Items" item-expanded='true'> <img style='float: left; margin-right: 5px;' src='../../images/recycle.png' /><span item-title="true"> <span>Deleted Items</span><span style='color: Blue;'> (10)</span></span> <ul> <li id="Today"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Today</span> </li> <li id="Last Week"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Last Week</span> </li> <li id="Last Month"> <img style='float: left; margin-right: 5px;' src='../../images/folder.png' /><span item-title="true">Last Month</span> </li> </ul> <li id="Notes"> <img style='float: left; margin-right: 5px;' src='../../images/notesIcon.png' /><span item-title="true">Notes</span> </li> <li id="Settings"> <img style='float: left; margin-right: 5px;' src='../../images/settings.png' /><span item-title="true">Settings</span> </li> <li id="Favorites"> <img style='float: left; margin-right: 5px;' src='../../images/favorites.png' /><span item-title="true">Favorites</span> </li> </li> </ul> </li> </ul> </div> </div> <div id="ContentPanel"> </div></div>
3. Initialize the widgets in the jQuery’s ready function. Bind to the jqxTree’s ‘select’ event and depending on the selected item, select the ‘ContentPanel’ DIV tag and set its new content.
<script type="text/javascript"> $(document).ready(function () { var theme = ''; // Create jqxTree $('#jqxTree').jqxTree({ theme: theme, height: '100%', width: '100%' }); $("#splitter").jqxSplitter({ theme: theme, width: 650, height: 400, panels: [{ size: 250}] }); $('#jqxTree').bind('select', function (event) { $("#ContentPanel").html("<div style='margin: 10px;'>" + event.args.element.id + "</div>"); }); });</script>