firstTarget.html 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Use event.firstTarget</title>
  5. <script src="../node_modules/hammerjs/hammer.js"></script>
  6. <script src="../propagating.js"></script>
  7. <style>
  8. div {border: 1px solid black;}
  9. #parent {width: 600px; height: 400px; background: lightgreen;}
  10. #child {width: 400px; height: 200px; background: yellow; margin: 10px;}
  11. </style>
  12. </head>
  13. <body>
  14. <p>
  15. Pan the child element, and check out <code>event.target</code> and <code>event.firstTarget</code>.
  16. </p>
  17. <ul>
  18. <li id="firstTarget">First target:</li>
  19. <li id="target">Target:</li>
  20. </ul>
  21. <div id="parent">
  22. parent
  23. <div id="child">
  24. child
  25. </div>
  26. </div>
  27. <script>
  28. // replace the global Hammer constructor with a propagated one, such that
  29. // hammer.js instances automatically have event propagation.
  30. Hammer = propagating(Hammer, {
  31. preventDefault: true
  32. });
  33. var parent = document.getElementById('parent');
  34. var hammer1 = new Hammer(parent)
  35. .on('pan', function (event) {
  36. console.log('pan on parent', event);
  37. });
  38. var child = document.getElementById('child');
  39. var hammer2 = new Hammer(child)
  40. .on('pan', function (event) {
  41. console.log('pan on child', event);
  42. document.getElementById('firstTarget').innerHTML = 'First target: ' + event.firstTarget.id;
  43. document.getElementById('target').innerHTML = 'Target: ' + event.target.id;
  44. })
  45. .on('panstart', function (event) {
  46. console.log('panstart on child', event);
  47. })
  48. .on('panend', function (event) {
  49. console.log('panend on child', event);
  50. });
  51. </script>
  52. </body>
  53. </html>