• onDomReady без jQuery

    Выдернул из jQuery реализацию обработчика события onDomReady. Для тех, кто не в курсе поясню, что это событие возникает, после того как весь html код страницы будет загружен браузером, но в отличие от  window.load, срабатывает раньше того, как будут загружены все стили, скрипты, картинки и т.д. Т.е. если в своем JS вам надо провести какие-то манипуляции с DOM на странице до ее показа, то вам нужен именно этот метод. Вы, конечно, можете подключать jQuery целиком, и тогда в вашем распоряжении будет этот метод. К примеру при подключенном jQuery установить событие можно так

  • Учимся работать с jQuery, Prototype и Mootools вместе

    Так уж сложилось, что в мире кроме JQuery есть еще куча различных библиотек. Самые популярных из них: Prototype, Mootools, ExtJS. К тому же есть тысячи самописных. И web-программистам, то и дело, по роду своей деятельности приходится с ними всеми сталкиваться.

    По своей сути все эти библиотеки, как бы они не были хороши, всего лишь надстройки над JS браузера. Это значит, что ничего из ряда вон выходящего они делать априори не умеют. Они лишь абстрагируют программиста от тонкостей реализации работы JavaScript в разных браузерах.

    К примеру, сейчас, в большинстве браузеров есть метод document.getElementsByClassName. Но в самых выдающихся (IE), этого метода нет. Что делает программист, когда ему надо найти элемент по его классу?

    Каждый раз рождается, что-то вроде этого:

    function getElementsByClassName(myclass,node){
    	var parent = node || document;
    	if(!parent.getElementByClassName){
    		var items = parent.getElementByTagName('*');
    		var result = [];
    		for(var r in items)
    			if(items[r].className==myclass)
    				result[result.length] = items[r];
    	}else result = parent.getElementByClassName(myclass);
    	return result;
    }
    

    Библиотеки освобождают нас от такой рутины, и сами добавляют в document.prototype нужный метод, если его нет. Но библиотек очень много, а методов, которые нужны каждый день с десяток. Сюда относится уже упомянутый поиск по классу (по CSS селектору), события onload, ondomready, работа с AJAX, нахождение позиции элемента на странице, определение браузера и т.д. Словом, редко в каком веб приложении можно обойтись без этих методов. Разработчики jQuery, похоже, об этом знают, поэтому эта библиотека и в авангарде.

    Но, как  я уже сказал, не jQuery единым сыт web-разработчик. Поэтому надо знать элементарный джентльменский набор и из других библиотек. Они могут Вам пригодиться, когда Вы, к примеру, работаете над чужим проектом.

    Поводом для написания статьи были постоянные вопросы моего товарища, который работал со старой версией UMICMS, но уже привык к свежей версии. Сейчас UMIперешла на jQuery, а раньше она работала на Prototype.

    Также очень популярная Joomla по дефолту работает с Mootools, по этому эту библиотеку я не мог обойти стороной.