Я нашел способ создать интерфейс
Получается миниатюрный аналог JQuery.
loadImage - для HTML5 Canvas, DOM - для манипуляции с элементами (не путать с JQuery). DOM(document).event({"DOMContentLoaded":function(){ DOM(document.getElementById("canvas")).attr({ "width":"100", "height":"100" }).css({ "background-color":"rgb(255,0,0)" }); }}); Сам скрипт: (function(){ var global = (function(){return this;})(); global.DOM = function(element){ var elem = element; var obj = {}; //Set Attributes obj.attr = function(src){ if(obj==null){obj={}} if(src==null){src={}} for(var i in src){ elem.setAttribute(i,src[i]); } return obj; } //Set CSS obj.css = function(src){ if(obj==null){obj={}} if(src==null){src={}} for(var i in src){ if(typeof elem.style.setProperty != "undefined"){ elem.style.setProperty(i,src[i],null); } else { elem.style.setAttribute(i,src[i]); } } return obj; } //Event Attach obj.event = function(obj){ if(obj==null){obj={}} for(var i in obj){ if(elem.addEventListener) { elem.addEventListener(i, obj[i], false); } else if(elem.attachEvent) { elem.attachEvent('on' + i, function(e){func.call(obj[i], e);}); } } return obj; } return obj; }; global.loadImage = function(src,onload){ var img = new Image(); img.src = src; img.onload = onload; return img; }; })(); |
Как видите - работает цепочка!
|
Видите как все просто! :p
|
Большой (очень) расход памяти будет.
|
Из-за Window?
|
Я вам скажу точно - расхода памяти не будет!
Сам проверял! |
Еще один секрет проще:
var x = JQuery; x(function(){ ... }); |
Цитата:
global.DOM = function(element){ var obj = {}; obj.attr = .. }; если засунешь все эти плюшки (event, css,attr и т.д) в прототип, то будет уже лучше Цитата:
$(function(){ .. }) |
Цитата:
|
(function(){ var global = (function(){return this;})(); //Image Loader global.loadImage = function(src,onload){ var img = new Image(); img.src = src; img.onload = onload; return img; }; //DOM Object global.DOM = function(element){ var elem = element; var obj = {}; obj.attr = function(src){ DOM.prototype.attr(elem,src); return obj; }; obj.css = function(src){ DOM.prototype.css(elem,src); return obj; }; obj.event = function(src){ DOM.prototype.event(elem,src); return obj; }; return obj; }; //Set Attributes DOM.prototype.attr = function(elem,src){ if(src==null){src={}} for(var i in src){ elem.setAttribute(i,src[i]); } } //Set CSS DOM.prototype.css = function(elem,src){ if(src==null){src={}} for(var i in src){ if(typeof elem.style.setProperty != "undefined"){ elem.style.setProperty(i,src[i],null); } else { elem.style.setAttribute(i,src[i]); } } } //Event Attach DOM.prototype.event = function(elem,src){ if(src==null){src={}} for(var i in src){ if(elem.addEventListener) { elem.addEventListener(i, src[i], false); } else if(elem.attachEvent) { elem.attachEvent('on' + i, function(e){func.call(src[i], e);}); } } } })(); |
Часовой пояс GMT +3, время: 04:25. |