javascript 对于一个事件,用监听绑定控件还是将事件写到html好呢?
无论是不是事件监听,JS都应该写在外部JS文件中,而不是写到HTML标签中。原因有很多:
JS负责行为层,而HTML负责结构层,功能不同,按系统架构的思想应该分离;
写在外部JS文件中更利于维护,而且可以多次迭代开发;
太多的JS代码写在HTML文件中会阻碍DOM树的加载,影响用户体验;
外部JS可以进行压缩,减少带宽占用。
而相比之下JS写在外部JS文件中的弊端,仅仅是需要多建立一次HTTP连接,在合并JS文件后利还是远远大于弊。
针对你问的这个问题,又有其他原因:
当需要将同个事件绑定在多个元素上时,无论是事件委托,抑或是类选择器迭代绑定,都远远好过于在HTML中为单一节点绑定事件。同样的道理,当需要取消绑定时,外部JS的处理也更为方便(HTML中解除绑定需要不断删代码)。
我不清楚你用的是哪种控件,但控件一般都追求简单易行性,因此这个控件一般也是用的事件绑定,而不是事件委托。除非是使用生成的HTML代码,否则一般是将事件绑定写在外部JS中,也好过写在HTML标签内。
综上所述,我建议如果力所能及,一般是手写代码,多使用事件委托而不是事件绑定;如果没这能力,就楼主提供的这两种选择,还是使用监听绑定控件比较好。总之,尽量避免在HTML中掺杂JS。