Turns out @$('a[data-toggle="tab"]').on 'shown.bs.tab' does not work, and the reason is because the sub-view renders again when the model changes, but the top-level does not, so the event doesn't get re-bound (as you originally surmised).

However, your suggestion of "listen to the DOM event in its own view" does *not* work here, because that sub-view is an automatically generated Thorax collection itemView. If you can think of a way to have that anonymous itemView handle its own DOM events and pass up backbone event...