javascript:onClick =“”与jQuery.Click()

时间:2014-02-21 13:08:10

标签: jquery html onclick

我有很多关于onClick-Events的页面(每个页面都有自己的onClick-Event的其他元素)。所有页面都包含在一个主页面(index.php

因此,我无法将所有jQuery onClick-Events放在页面的头部(因为<head>只在index.php中,而不是在包含的页面中)

现在更好的是在我包含的每个页面中制作<script>...</script>吗?因为这不在<head>中。

或者我应该使用HTML - 属性onClick=""

3 个答案:

答案 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

http://en.wikipedia.org/wiki/Unobtrusive_JavaScript