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

Kev*_*ang 39 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>
Run Code Online (Sandbox Code Playgroud)

不使用jQuery:

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

Ada*_*ire 55

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

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

它们都将按click顺序在事件上调用.onClickjQuery的注册表驱动系统覆盖了"真实" 事件.在vanilla文档结构中,没有像jQuery这样的系统,只能有一个onClick事件.

  • +1.很好的答案.事件规范化(我认为jQuery会这样做)是另一个区别. (2认同)

pal*_*rse 8

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


ori*_*rip 6

其中一个区别是使用jQuery添加处理程序click不会删除以前的处理程序.