Replying to [comment:1 dmethvin]:
Yep, as documented it must be a selector string. If you are going to select the elements in advance you might as well bind them.
I think the test case didn't make the problem I'm seeing clear enough.
In my real-world use case, I need to delegate because the elements in question are sometimes added to the document after page load, and it would be useful to pass in a jQuery object, as my selector is rather complex.
Here is the selector I'm using:
var $links = $('a[href^="http"], a[rel="new-window"]').not('.colorbox, .addthis-button');
This would be pretty ugly to write as a pure CSS selector. Also, the API docs for the :not() selector (http://api.jquery.com/not-selector/) include the following:
''The .not() method will end up providing you with more readable selections than pushing complex selectors or variables into a :not() selector filter. In most cases, it is a better choice.''
Being able to pass in a jQuery object rather than only a string can, in cases like this, make code more readable. It also has potential benefits when selectors are dynamically constructed, since they can be built with jQuery objects rather than put together as a string.
Thanks for listening.