75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
window.Util = {
|
|
isNumber: function (n) {
|
|
return typeof n === 'number' && !isNaN(n);
|
|
},
|
|
isFunction: function (fn) {
|
|
return typeof fn === 'function';
|
|
},
|
|
hasClass: function (element, className) {
|
|
return element.classList.contains(className);
|
|
},
|
|
getByClass: function (element, className) {
|
|
return element.getElementsByClassName ?
|
|
element.getElementsByClassName(className) :
|
|
element.querySelectorAll('.' + className);
|
|
},
|
|
createImage: function (attrs) {
|
|
var container = document.createElement('div');
|
|
var image = new Image();
|
|
var attr;
|
|
|
|
if (typeof attrs !== 'object') {
|
|
attrs = {};
|
|
}
|
|
|
|
if (!attrs.src) {
|
|
attrs.src = '../docs/images/picture.jpg';
|
|
}
|
|
|
|
for (attr in attrs) {
|
|
if (attrs.hasOwnProperty(attr)) {
|
|
image[attr] = attrs[attr];
|
|
}
|
|
}
|
|
|
|
container.className = 'container';
|
|
container.appendChild(image);
|
|
document.body.appendChild(container);
|
|
|
|
return image;
|
|
},
|
|
dispatchEvent: function (element, type, data) {
|
|
var event;
|
|
|
|
if (element.dispatchEvent) {
|
|
// Event and CustomEvent on IE9-11 are global objects, not constructors
|
|
if (typeof Event === 'function' && typeof CustomEvent === 'function') {
|
|
if (!data) {
|
|
event = new Event(type, {
|
|
bubbles: true,
|
|
cancelable: true
|
|
});
|
|
} else {
|
|
event = new CustomEvent(type, {
|
|
detail: data,
|
|
bubbles: true,
|
|
cancelable: true
|
|
});
|
|
}
|
|
} else if (!data) {
|
|
event = document.createEvent('Event');
|
|
event.initEvent(type, true, true);
|
|
} else {
|
|
event = document.createEvent('CustomEvent');
|
|
event.initCustomEvent(type, true, true, data);
|
|
}
|
|
|
|
// IE9+
|
|
return element.dispatchEvent(event);
|
|
} else if (element.fireEvent) {
|
|
// IE6-10 (native events only)
|
|
return element.fireEvent('on' + type);
|
|
}
|
|
}
|
|
};
|