That's a good explanation, but its not actually that jQuery automatically binds events to the newly inserted elements, its that it takes advantage of Javascript's event bubbling to match the selector at the highest level it can.<p>Basically, if you had HTML like this:<p><pre><code>    &#60;div&#62;
        &#60;p&#62;
            &#60;span&#62;Hello World&#60;/span&#62;
        &#60;p&#62;
    &#60;/div&#62;
</code></pre>
and the user clicks on the span, Javascript will raise a click event not only for the span but for each of its parents (p, div, body and html).<p>jQuery's live events take advantage of this by "trapping" the click event (or blur, focus, etc) at the highest level. This leads to 2 distinct advantages:<p>1) Elements inserted into a page after the script is initialized don't need to have events bound to them. (this is what defen was referencing)<p>2) You don't have to bind a callback to every single element.<p>The second can pay dividends even if there is no dynamically inserted content. For instance, lets say you have a table with 1000 cells and you want to make them editable when the user clicks on them.<p>Traditionally, you would do something like this:<p><pre><code>    $('td').click(function () { makeCellEditable(this); } );
</code></pre>
Although this would work, binding 1000 callbacks, one to each td element, will seriously impact browser performance.<p>With live events the syntax is very similar:<p><pre><code>    $('td').live('click', function () { makeCellEditable(this); } );
</code></pre>
The difference is we've only bound 1 event, so the browser's performance will not be adversely affected.<p>Hope that helps.