Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var dispatchEvent = function(node, event, params) {
- var disabledDesc,
- disabledChanged,
- disabledFix;
- if (node.disabled &&
- (disabledDesc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(node), 'disabled')) &&
- disabledDesc.set && disabledDesc.get &&
- !Object.getOwnPropertyDescriptor(node, 'disabled')) {
- disabledFix = true;
- node.disabled = false;
- Object.defineProperty(node, 'disabled', {
- enumerable: true,
- configurable: true,
- set: function(val) {
- disabledChanged = true;
- return disabledDesc.set.call(this, val);
- },
- get: disabledDesc.get
- });
- } else {
- disabledDesc = null;
- }
- event = new window[params.type || 'CustomEvent'](event, params.options);
- node.dispatchEvent(event);
- if (disabledFix) {
- delete node.disabled;
- if (!disabledChanged) {
- node.disabled = true;
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement