.bind() vs .live() vs .delegate() vs .on()

JavaScript performance comparison

Revision 5 of this test case created by Rochas

Info

The Difference Between jQuery’s .bind(), .live(), and .delegate()

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script>
  function handler() {
    $('p').text("CLICK !");
  }
</script>
<div id="context">
<div>
<p>Event test</p>
</div>
</div>

Preparation code output

Event test

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
.bind
$('p').bind('click', handler);
pending…
.live() in document
$('p').live('click', handler);
pending…
.live() in a
$('p', $(document)[0]).live('click', handler);
pending…
.delegate
$(document).delegate('p', 'click', handler);
pending…
.on
$(document).on('click', 'p', handler);
pending…
.bind() in context
$('p', $('#context')).bind('click', handler);
pending…
.live() in context
$('p', $('#context')).live('click', handler);
pending…
.delegate() in context
$('#context').delegate('p', 'click', handler);
pending…
.on() in context
$('#context').on('click', 'p', handler);
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment