Advertisement
Guest User

Untitled

a guest
Nov 9th, 2017
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Check what other JS libraries get when DOM click events are fired
  3. */
  4. document.addEventListener('click', function(event){
  5.     console.group('Click Listener');
  6.     console.log('event',event);
  7.     console.log('target',event.target);
  8.     console.groupEnd();
  9. });
  10.  
  11. /*
  12. Captures DOM click events and dispatches a new event with original event.target
  13. */
  14. document.addEventListener('click', function(event){
  15.     console.group('DOM Click Dispatcher');
  16.    
  17.     /*
  18.     Only handling events we dispatch manually
  19.     This is to prevent a infite loop
  20.     */
  21.     console.log('event.dispatchedManually',event.dispatchedManually);
  22.     if (typeof event.dispatchedManually !== 'undefined') return;
  23.  
  24.     /*
  25.     Retrieving the original target element
  26. https://www.polymer-project.org/1.0/docs/devguide/events#retargeting
  27.     */
  28.     event = Polymer.dom(event);
  29.     var target = event.path[0];
  30.     console.log('Polymer event',event);
  31.     console.log('Original Target',target);
  32.  
  33.     /*
  34.     Dispatching a 'click' event on the original target
  35.     so other JS libraries that rely on original event.target can work
  36.     https://stackoverflow.com/questions/2705583/how-to-simulate-a-click-with-javascript#answer-2706236
  37.     */
  38.     var simulate = document.createEvent('Events');
  39.     simulate.initEvent('click', true, false);
  40.     simulate.dispatchedManually = true;
  41.     console.log('Dispatching',simulate,'for',target);
  42.     target.dispatchEvent(simulate);
  43.     console.groupEnd();
  44. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement