我有很多关于onClick-Events的页面(每个页面都有自己的onClick-Event的其他元素)。所有页面都包含在一个主页面(index.php
)
因此,我无法将所有jQuery onClick-Events放在页面的头部(因为<head>
只在index.php
中,而不是在包含的页面中)
现在更好的是在我包含的每个页面中制作<script>...</script>
吗?因为这不在<head>
中。
或者我应该使用HTML
- 属性onClick=""
?
答案 0 :(得分:5)
现在更好地在每一页中制作一个...... 包括?因为这不会出现在。
中
<script>
标签不需要在头部,实际上,最佳位置(性能方面)恰好在结束</body>
之前。是的,您还希望尽可能多地使用外部JS文件。
或者我应该使用HTML属性onClick =“”? [...] 我无法将所有jQuery onClick-Events放在页面的头部 (因为它只是在index.php中,而不是在包含的页面中)
通常,您几乎总是希望避免添加大量事件,而是希望使用jQuery.on
来利用事件冒泡。
示例用法可能是:
$(document).ready(function() {
$('body').on('click', '.myselector', function(e) {
alert('Parameter: ' + $(this).attr('data-param'));
});
});
您的HTML看起来像:
<a href="#" class="myselector" data-param="Hello!">This is a button</a>
这将仅在主体上绑定一个事件。当您单击正文内的任何内容时,事件将冒泡到正文,如果您在此选择器内单击,则会执行。
如果页面上没有.myselector
,它就什么都不做,所以没关系。
答案 1 :(得分:2)
实际上,所有JavaScript都应放在外部文件中。这是为了提高性能和可维护性。
性能,因为浏览器可以缓存外部脚本,减少加载时间。
可维护性,因为您最终不需要浏览大量的HMTL文档来获取一些JavaScript。
HMTL中的JavaScript也可能会破坏您需要注意的解析器。
如果无法将所有脚本包含在外部文件中,那么您应该重新考虑网站的体系结构,因为它应该是这样的。
答案 2 :(得分:0)
了解Unobstrusive Javascript
: