Какой смысл в госуслугах, если - читаемПервый снег

Ещё раз про .live, jQuery

Ещё на заре, когда я только-только учился js, я применял обработку событий централизованно, то есть, вешал обработчик на document и по всплытию и последующей проверке на тег-класс и т.п.
Потому что раньше не было библиотек.

Это считается довольно быстрой постановкой событий, хотя в обработке довольно медленнее, потому что нужно проверять КАЖДЫЙ DOM-элемент по ветке всплытия!

Посмотрел исходники jquery, там это делается путём первоначального парсинга селектора при поставовке события.
			if ( selector ) {
				handleObj.quick = quickParse( selector );
				if ( !handleObj.quick && jQuery.expr.match.POS.test( selector ) ) {
					handleObj.isPositional = true;
				}
			}



	quickParse = function( selector ) {
		var quick = rquickIs.exec( selector );
		if ( quick ) {
			//   0  1    2   3
			// [ _, tag, id, class ]
			quick[1] = ( quick[1] || "" ).toLowerCase();
			quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
		}
		return quick;
	},


То есть, в последующей централизованной обработке события через всплытие (а не как обычно, на единичный элемент) будет производиться проверка всех DOM-элементов от точки события до корня. Вот так:


			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
				selMatch = {};
				matches = [];
				for ( i = 0; i < delegateCount; i++ ) { 					handleObj = handlers[ i ]; 					sel = handleObj.selector; 					hit = selMatch[ sel ];  					if ( handleObj.isPositional ) { 						// Since .is() does not work for positionals; see http://jsfiddle.net/eJ4yd/3/ 						hit = ( hit || (selMatch[ sel ] = jQuery( sel )) ).index( cur ) >= 0;
					} else if ( hit === undefined ) {
						hit = selMatch[ sel ] = ( handleObj.quick ? quickIs( cur, handleObj.quick ) : jQuery( cur ).is( sel ) );
					}
					if ( hit ) {
						matches.push( handleObj );
					}
				}
				if ( matches.length ) {
					handlerQueue.push({ elem: cur, matches: matches });
				}
			}


А это довольно затратная операция на процессорное время.

Конечно, можно ограничить путь до корня путём указания контекста, но всё равно это будет выполняться на каждый вызов события.

Намного быстрее и проще предусмотерть это в архитектуре своего приложения, это во-первых, и быстрее, и ничего лишнего. А по скорости разработки я уже писал - это зависит от архитектуры, если она правильно создана, то и проблем нет =)
Вуаля.