Advertisement
Guest User

Untitled

a guest
Jun 7th, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var dispatchEvent = function(node, event, params) {
  2.   var disabledDesc,
  3.     disabledChanged,
  4.     disabledFix;
  5.  
  6.   if (node.disabled &&
  7.       (disabledDesc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(node), 'disabled')) &&
  8.       disabledDesc.set && disabledDesc.get &&
  9.       !Object.getOwnPropertyDescriptor(node, 'disabled')) {
  10.     disabledFix = true;
  11.     node.disabled = false;
  12.     Object.defineProperty(node, 'disabled', {
  13.       enumerable: true,
  14.       configurable: true,
  15.       set: function(val) {
  16.         disabledChanged = true;
  17.         return disabledDesc.set.call(this, val);
  18.       },
  19.       get: disabledDesc.get
  20.     });
  21.   } else {
  22.     disabledDesc = null;
  23.   }
  24.  
  25.   event = new window[params.type || 'CustomEvent'](event, params.options);
  26.  
  27.   node.dispatchEvent(event);
  28.  
  29.   if (disabledFix) {
  30.     delete node.disabled;
  31.     if (!disabledChanged) {
  32.       node.disabled = true;
  33.     }
  34.   }
  35. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement