Advertisement
Guest User

Custom Async Events in JS?

a guest
Feb 12th, 2012
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(function() {
  2.     var jqOutput      = $('#jq-output');
  3.     var oNativeOutput = $('#native-output');
  4.  
  5.     // --------------------------------------------------
  6.     // define 3 handlers for the custom events
  7.     // --------------------------------------------------
  8.     function jqEventHandler1() {
  9.         jqOutput.append('<p>jq handler 1</p>');
  10.     }
  11.  
  12.     function jqEventHandler2() {
  13.         jqOutput.append('<p>jq handler 2</p>');
  14.     }
  15.  
  16.     function jqEventHandler3() {
  17.         jqOutput.append('<p>jq handler 3</p>');
  18.     }
  19.  
  20.     // Use jQuery to setup some custom events
  21.     $('body').bind('jq-event', jqEventHandler1);
  22.     $('body').bind('jq-event', jqEventHandler2);
  23.     $('body').bind('jq-event', jqEventHandler3);
  24.  
  25.     // trigger the custom event
  26.     $('#fire-jq').click(function() {
  27.         $('body').trigger('jq-event');
  28.         return false;
  29.     });
  30.  
  31.  
  32.     // now we'll try using the native custom events
  33.     document.addEventListener('custom', jqEventHandler1, false);
  34.     document.addEventListener('custom', jqEventHandler2, false);
  35.     document.addEventListener('custom', jqEventHandler3, false);
  36.  
  37.     document.getElementById('fire-native').addEventListener('click', function(oEvent) {
  38.         oEvent.stopPropagation();
  39.         oEvent.preventDefault();
  40.  
  41.         // create the event
  42.         var evt = document.createEvent('Event');
  43.         // define that the event name is `custom`
  44.         evt.initEvent('custom', true, true);
  45.  
  46.         // elem is any element
  47.         document.getElementsByTagName('body')[0].dispatchEvent(evt);
  48.     });
  49. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement