sashomaga

Custom jQuery Plugin

Jun 16th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Create a TreeView jQuery Plugin
  2. Initially only the top items must be visible
  3. On item click
  4. If its children are hidden (collapsed), they must be made visible (expanded)
  5. If its children are visible (expanded), they must be made hidden (collapsed) */
  6.  
  7. <!DOCTYPE html>
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10.     <title></title>
  11.     <style>
  12.         .hidden
  13.         {
  14.             display: none;
  15.         }
  16.     </style>
  17. </head>
  18. <body>
  19.     <ul id="tree">
  20.         <li> Item
  21.             <ul>
  22.                 <li>Inner Item
  23.                     <ul>
  24.                         <li>Most Inner Item</li>
  25.                     </ul>
  26.                     </li>
  27.             </ul>
  28.            
  29.         </li>
  30.         <li> Item
  31.             <ul>
  32.                 <li>Inner Item
  33.                     <ul>
  34.                         <li>Most Inner Item</li>
  35.                     </ul>
  36.                     </li>
  37.             </ul>
  38.            
  39.         </li>
  40.         <li> Item
  41.             <ul>
  42.                 <li>Inner Item
  43.                     <ul>
  44.                         <li>Most Inner Item</li>
  45.                     </ul>
  46.                     </li>
  47.             </ul>
  48.            
  49.         </li>
  50.         <li>Item
  51.             <ul>
  52.                 <li> Inner Item
  53.                     <ul>
  54.                         <li>Most Inner Item</li>
  55.                     </ul>
  56.                    </li>
  57.             </ul>
  58.            
  59.         </li>
  60.     </ul>
  61.     <script src="jQuery.js"></script>
  62.     <script>
  63.         (function ($) {
  64.         // fn -> adds plugin
  65.             $.fn.treeView = function () {
  66.                 var element = this;
  67.                 element.find("li ul").addClass("hidden");
  68.                 element.on("click", function (ev) {
  69.                     if ($(ev.target.firstElementChild).hasClass("hidden")) {
  70.                         $(ev.target.firstElementChild).removeClass("hidden");
  71.                     } else {
  72.                         $(ev.target.firstElementChild).addClass("hidden")
  73.                     }
  74.                 });
  75.  
  76.                 return this;
  77.             }
  78.         }(jQuery));
  79.  
  80.         $(document).ready(function () {
  81.             $("#tree").treeView();
  82.         });
  83.     </script>
  84. </body>
  85. </html>
Advertisement
Add Comment
Please, Sign In to add comment