Guest User

Untitled

a guest
Jan 21st, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <style type="text/css">
  6. #my_ul li {
  7. cursor: pointer;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <div id="my_div">
  13. <ul id="my_ul">
  14. <li><a href="#">List Item 1</a></li>
  15. <li><div><div><div>List Item 2</div></div></div></li>
  16. <li>List Item 3</li>
  17. <li>List Item 4</li>
  18. <li>List Item 5</li>
  19. </ul>
  20. </div>
  21. <script type="text/javascript">
  22. var MyDom = {};
  23. !function($) {
  24. $.MyUl = MyUl;
  25.  
  26. function MyUl (elm) {
  27. this._elm = elm;
  28. }
  29.  
  30. MyUl.prototype.delegate = function(targetType, eventType, eventHandler) {
  31. var node = this._elm;
  32. node.addEventListener(eventType, function(e) {
  33. var target = e.target;
  34. var nodeType = target.nodeName.toLowerCase();
  35. if (nodeType !== targetType) {
  36. target = findParentNode(target, targetType);
  37. }
  38. eventHandler.call(target, e);
  39. }, false);
  40. };
  41.  
  42. function findParentNode (node, type) {
  43. var parent = node.parentNode;
  44. if (parent.nodeName.toLowerCase() === type) {
  45. return parent;
  46. } else {
  47. return findParentNode(parent, type);
  48. }
  49. }
  50. }(MyDom);
  51.  
  52. var $ = $ || MyDom;
  53.  
  54. var ul = document.getElementById("my_ul");
  55. var my_ul = new $.MyUl(ul);
  56. my_ul.delegate("li", "click", function(e) {
  57. e.preventDefault();
  58. console.log(this);
  59. });
  60. </script>
  61. </body>
  62. </html>
Add Comment
Please, Sign In to add comment