You're talking about embedding a <script> block in HTML content that you're pulling directly through Ajax, right? Firefox won't evaluate those blocks if they're in Ajax-provided HTML. Some other browsers will.
Your approach is mostly going to depend on whether the app/browser knows ahead of time what it wants to do (client-side), or whether the server can provide unexpected functionality (server-side). Most of the time I'm working with pluggable PHP apps, so 'tabs' could show up in my app for any reason from any plugin -- and I can't know ahead of time what their scripting needs are.
If my needs are simple, I use "onclick" in the dynamic HTML, or I do the post-Ajax binding with jQuery. If my needs are complex (adding context-sensitive scripts) then I'll do something like providing the HTML and JS wrapped in a single JSON response. You can 'DIV.innerHTML' the HTML and eval() (or otherwise handle) the JS.
Jeff Standen, Chief of R&D, WebGroup Media LLC. - LinkedIn Cerb is a fast and flexible web-based platform for business collaboration and automation. http://www.cerbweb.com/