Предположим, что CSS, как мы знаем, никогда не был изобретен, и самое близкое, что мы могли получить, это сделать:
<script>
// this is the page's stylesheet
$(document).ready(function(){
$('.error').css({'color':'red'});
$('a[href]').css({'textDecoration':'none'});
...
});
</script>
Если бы именно так нас заставляли писать код, смирились бы мы с этим? Или каждый разработчик на Земле будет кричать на производителей браузеров, пока они не стандартизируют CSS или хотя бы какой-нибудь декларативный язык стилей?
Возможно, CSS не идеален, но, надеюсь, очевидно, что он лучше, чем находи вещи, делай вещи методом, показанным выше. Итак, мой вопрос заключается в следующем. Мы увидели и попробовали славу декларативного связывания с CSS, так почему же, когда дело доходит до поведенческого / интерактивного уровня, все сообщество JavaScript кажется самодовольным, продолжая использовать грязный процедурный метод, описанный выше? Почему, например, это считается многими лучшим способом сделать что-либо:
<script>
$(document).ready(function(){
$('.widget').append("<a class='button' href='#'>...</div>");
$('a[href]').click(function(){...});
...
});
</script>
Почему нет массового толчка для получения файлов XBL2.0 или .htc или своего рода декларативного синтаксиса поведения , стандартно реализованного в браузерах? Это признано необходимостью другими специалистами по веб-разработке? Есть ли что-нибудь на горизонте для HTML5?
(Предостережения, заявления об отказе от ответственности и т. Д. Я понимаю, что это не идеальный мир и что мы разыгрываем ту руку, с которой мы столкнулись. Моя цель не столько критиковать нынешний способ ведения дел, сколько критиковать самоуспокоенность , которая существует в отношении текущего способа ведения дел. Во-вторых, делегирование событий, особенно на корневом уровне, является шагом ближе к созданию уровня декларативного поведения. Это решает подмножество проблемы, но это не может создавать элементы пользовательского интерфейса, поэтому общая проблема остается.)