Advertisement
Guest User

Untitled

a guest
May 26th, 2015
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. ;(function(handlers) {
  2. if (!handlers) {
  3. throw new Error('Nothing to handle');
  4. }
  5.  
  6. document.documentElement.addEventListener('click', function(event) {
  7. var handler = event.originalTarget.getAttribute('data-handler');
  8. if (!handler) {
  9. // nothing to do
  10. return;
  11. }
  12. if (event.originalTarget.tagName === 'A' && (event.metaKey || event.ctrlKey || event.shiftKey)) {
  13. // honour default behaviour on <a>s when using modifier keys when clicking
  14. // meta / ctrl open in new tab
  15. // shift opens in a new window
  16. return;
  17. }
  18. if (typeof handlers[handler] === 'function') {
  19. handlers[handler].call(event.originalTarget, event);
  20. }
  21. else {
  22. if (console && console.log) {
  23. console.log('unknown handler \'%\'s on %o', handler, event.originalTarget);
  24. }
  25. }
  26. });
  27.  
  28. }({
  29. 'example-handler': function(event) {
  30. event.preventDefault();
  31. // I'm the example handler
  32. }
  33. }));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement