Yes, this did change. The 1.7 event delegation code now uses
.is() internally rather than having its own implementation. The
.is() code is always rooted at the document so that selector always returns the first element in the document.
Regardless, positional selectors like
matchesSelector or our own quick optimization for
tag#id.class. As a result any selector like
.class:first is horrendously inefficient; it has to get the complete list of elements with that class and see if there are any. And it does that for every element from the event.target to the delegation point.
So, my preference would be to just say that positional selectors aren't supported in delegated event handlers. We can add more code to fix the regression but it will still be slow and unadvisable.