$().ready -> show_tab = (tab_name)-> try $('li.tab_name').text $("""#nav_tabs a[data-tab-name=#{tab_name}]""").text() window["tab_#{tab_name}_init"]() catch e return # show the matching tab on click $('.nav-tabs a').on 'click', (e) -> e.preventDefault() $(this).tab('show') # lazy load the tab on first show $('ul.nav-tabs > li > a').on 'show.bs.tab', (e)-> tab_name = $(this).data('tabName') window.location.hash = $(e.target).attr('href').substr(1) if tab_name show_tab(tab_name) # show matching tab after the url hash, participant/32#adressen -> adressen tab_name = window.location.hash if tab_name $('#nav_tabs a[href="' + tab_name + '"]').tab('show') # or the first one.. else $('#nav_tabs a.nav-link').first().tab('show') $('#nav_tabs').show()