В JS есть такое понятие как "контекст выполнения". Для обычной функции в том виде, в котором вы указали контекст = глобальный объект window. Любая глобальная переменная(функция) доступна как свойство window.
Но если вы создаете свой собственный объект, контекстом становятся свойства и методы объекта + много что еще при этом this указывает на собственные методы и свойства объекта.
В jQuery когда вы пишите
var v = $("#foo");
вы создаете v - некий объект(обертку вокруг #foo) , у которого куча собственных свойств и методов + сам элемент DOM c id=foo
Обработчики событий устроены так, что при записи
$("#foo").click(function(){...})
функция передаваемая в качестве параметра обрабатывается в контексте элемента DOM, соответствующего $("#foo"). Т.е. внутри этой функции ссылка на this обращается непосредственно к элементу DOM c id=foo Но это фича именно jQuery не js
Мутно но проще я не объясню. Я привел ссылку на Javascript.Ru там у Ильи Кантора подробно все расписано.
=
Офтопик.
Тут регулярно возникали холивары на тему jquery. Смысл которых в том, что jquery очень часто создает иллюзию того, что можно обойтись без знания JS как такового.
Вы уперлись в основу ООП на JS. Почитайте здесь: http://javascript.ru/tutorial/object/thiskeyword
Когда вызываете функцию так как вы ее вызывали this = window. И при обращении к this.id интерпретатор пытается найти window.id или что то же самое глобальную переменную id.
<script type="text/javascript">
id='WOW!;// то же самое что и window.id = 'WOW!'
function foo() {
alert(this.id) // WOW!
}
</script>
Вообще эта тема - основа ООП в JS.
Интересно, холивар про валидность верстки уже умер?
На написание одной приличной статьи уйдет времени больше чем на то чтобы разобраться с простеньким движком. То же самое и с мониторингом новостей, если ими заниматься серьезно.
1. Пофантазировать это хорошо. Только все фантазии у меня уходят в то что профессия веб-мастер наверное отомрет, точнее будет заменена на десяток других. Оно и сейчас уже происходит такое.
2. Ваша система напомнила мне прошлый век. Динамимческие сайты тогда были редкостью, и эдакое тогда в ходу было. Сам делал нечто похожее на Delphi Зачем оно сейчас плохо понимаю. Наверное нужно.
Но если бы на выходе был бы не HTML, а инструкции по сборке какой-нибудь CMS + инструкции для этойже CMS по обновлению контента-структуры это наверное могло быть интересно. Может я и ошибаюсь.
Прилепите XSLT
Пример можно посмотреть http://regnum.ru/rss/index.xml
Если работать в команде и с большим проектом, выработка каких-то стандартов, и использование чужого кода неизбежны. Фреймворки дают этот самый стандарт. Остается только выбрать - какой.
Если бы не было необходимости тащить большие наработки на CI - перешел бы на YII.
из плюсов YII - достаточно простой при этом намного богаче CI, большое и активное русскоязычное комьюнити, активно разрабатываются плагины.
Из минусов - то что говорили выше, но это наверное дело вкуса.
CI - с ним что-то непонятное. Очень долго обновлялся с версии 1 до версии 2. Причем было неизвестно - будет продолжение или нет. Сейчас тоже неизвестно. Все ведущие разработчики вроде ушли, компания активно продвигает коммерческую CMS, наверное в ущерб фреймворку. Учиться на нем проще, а работать лучше все же на чем-то более полновесном.
да все так же.
для того чтобы сделать средней паршивости интернет-магазин выучить и php и и js не сложно. Сложно научиться делать магазин типа Амазона или сервис типа gmail
Но в чем с js сложнее на мой взгляд (допускаю что ошибаюсь)
1. практически нет нормальной литературы на русском. На php - вагон и маленькая тележка.
2. клиентское программирование меняется быстрее чем серверное. Трудно успевать. Особенно с появлением HTML5. Возможности JS растут быстрее мощностей комп и линеек (это я не вспоминаю о "модном" серверном js ). Возможности php остались там же где и были.
Найдите хорошего программиста, а движок он вам сделает сам.
Он ищет где подешевле :)