使用jQuery的onclick和onclick属性有什么区别?

时间:2008-12-29 21:38:56

标签: jquery

以下两段HTML之间的区别是什么(如果我在写这个写意时有任何拼写错误而道歉)?

使用jQuery:

<script type="text/javascript">
    $(document).ready(function() {
        $("#clickme").click(function() {
            alert("clicked!");
        });
    });
</script>

<a id="clickme" href="javascript:void(0);">click me</a>

不使用jQuery:

<a id="clickme" href="javascript:void(0);" onclick="alert('clicked!');">click me</a>

3 个答案:

答案 0 :(得分:55)

一个很大的区别是jQuery的事件是在一个注册表中处理的,该注册表在click事件上被解析。至关重要的是,这意味着您可以分配多个回调,并按照注册顺序触发它们:

<script type="text/javascript">
    $(document).ready(function() {
        $("#clickme").click(function() {
            alert("clicked!");
        });
        $("#clickme").click(function() {
            alert("I concur, clicked!");
        });
    });
</script>

它们都将按此顺序在click事件上调用。 jQuery的注册表驱动系统覆盖了“真正的”onClick事件。在vanilla文档结构中,如果没有像jQuery这样的系统,那么只能有一个onClick事件。

答案 1 :(得分:8)

它也是UI代码(HTML)和逻辑代码(JavaScript)的更清晰分离。它使阅读更容易。

答案 2 :(得分:6)

其中一个不同之处是使用jQuery的click添加处理程序并不会删除以前的处理程序。