Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我们不';我不喜欢表现层使用它,那么为什么我们容忍行为层使用它呢?_Javascript_Html_Css_Events - Fatal编程技术网

Javascript 如果我们不';我不喜欢表现层使用它,那么为什么我们容忍行为层使用它呢?

Javascript 如果我们不';我不喜欢表现层使用它,那么为什么我们容忍行为层使用它呢?,javascript,html,css,events,Javascript,Html,Css,Events,假设我们所知道的CSS从未被发明过,我们最接近的方法就是这样做: <script> // this is the page's stylesheet $(document).ready(function(){ $('.error').css({'color':'red'}); $('a[href]').css({'textDecoration':'none'}); ... }); </script> //这是页面的样式表 $(文档).ready

假设我们所知道的CSS从未被发明过,我们最接近的方法就是这样做:

<script>
// this is the page's stylesheet
$(document).ready(function(){
    $('.error').css({'color':'red'});
    $('a[href]').css({'textDecoration':'none'});
    ...
});
</script>

//这是页面的样式表
$(文档).ready(函数(){
$('.error').css({'color':'red'});
$('a[href]').css({'textdeaction':'none'});
...
});
如果这就是我们被迫编写代码的方式,我们会忍受吗?或者地球上的每个开发人员都会对浏览器供应商大喊大叫,直到他们标准化了CSS,或者至少是某种声明式语言

也许CSS并不完美,但希望它明显比上面显示的“查找内容,执行内容”方法更好。所以我的问题是。我们已经看到并尝到了CSS声明性绑定的荣耀,那么,当涉及到行为/交互层时,为什么整个JavaScript社区对于继续使用上面描述的笨拙的过程方法感到自满呢?例如,为什么许多人认为这是做事情的最佳方式:

<script>
$(document).ready(function(){
    $('.widget').append("<a class='button' href='#'>...</div>");
    $('a[href]').click(function(){...});
    ...
});
</script>

$(文档).ready(函数(){
$('.widget')。追加(“…”);
$('a[href]')。单击(函数(){…});
...
});
为什么不大力推动XBL2.0或.htc文件或某种声明性行为语法在浏览器间以标准方式实现?其他web开发专业人员是否认为这是一种需要?HTML5有什么前景吗


(警告、免责声明等:我意识到这不是一个完美的世界,我们在玩我们已经得到的牌。我的观点不是批评当前的做事方式,而是批评当前做事方式存在的自满情绪。其次,活动授权,特别是在基层,离ha更近了一步它解决了问题的一个子集,但无法创建UI元素,因此总体问题仍然存在。)JavaScript之所以被容忍,只是因为它无处不在。如果它真的是一种好语言,那么每个人和他们的狗就不会用它来创建深奥的DSL,而这些DSL真的很难让你忘记你在使用JavaScript。

**例如,为什么许多人认为这是做事情的最佳方式: $(文档).ready(函数(){ $('.widget')。追加(“…”); $('a[href]')。单击(函数(){…}); ... }); **


因为这不仅仅是行为。执行您提供的示例的正确方法是使用纯html。您所描述的内容适合于以渐进增强的方式分层其他行为。这是一种固有的复杂性。这是行为的行为。

更像是一篇博客文章,而不是一个堆栈溢出问题如果“好的语言”和“每个人都在使用它”以任何方式相互关联,没有人会使用PHP。JavaScript事实上是一种非常好的语言,像jQuery这样的东西可以存在证明了这一点。独立的DOM操作如此痛苦不是JavaScript的错。深奥的DSL通常不会隐藏JavaScript(这很好),但环境(从不方便到可怕)我不认为你知道什么是事实或证据,但感谢你毫无意义地捍卫了一种你可能有点经验的语言。也许,但我的主要观点是,它是过程性的,而不是声明性的。我们需要的是一种方法来声明所有的.widget元素都有一个a.button元素,而不是执行一个DOM查询、迭代和追加。