What's the difference between the following two pieces of HTML (apologies if there are any typos as I'm typing this freehand)?
Using jQuery:
<script type="text/javascript">
$(document).ready(function() {
$("#clickme").click(function() {
alert("clicked!");
});
});
</script>
<a id="clickme" href="javascript:void(0);">click me</a>
Not using jQuery:
<a id="clickme" href="javascript:void(0);" onclick="alert('clicked!');">click me</a>
onClick will work in html, but if you're defining the handler in JS, you need to use the lowercased onclick. in XHTML, HTML attributes are case sensitive.
The onClick attribute is an event handler that instructs the browser to run a script when the visitor clicks a button.
The difference is that the first ( click ) is an event listener, and the second ( onclick ) is an event handler content attribute.
. click events only work when element gets rendered and are only attached to elements loaded when the DOM is ready. . on events are dynamically attached to DOM elements, which is helpful when you want to attach an event to DOM elements that are rendered on ajax request or something else (after the DOM is ready).
One big difference is that jQuery's events are handled in a registry which is parsed on the click event. Crucially, this means that you are permitted to assign multiple callbacks, and have them triggered in the order in which they were registered:
<script type="text/javascript"> $(document).ready(function() { $("#clickme").click(function() { alert("clicked!"); }); $("#clickme").click(function() { alert("I concur, clicked!"); }); }); </script>
They will both be invoked on the click
event, in that order. The "real" onClick
event is overridden by jQuery's registry-driven system. In the vanilla document structure, without a system like jQuery in place, there can only be one onClick
event.
It is also a cleaner separation of UI code (the HTML) and the logic code (the JavaScript). It makes reading each a bit easier.
One of the differences is that adding handlers with jQuery's click
doesn't remove previous handlers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With