$(selector).on(eventType, handler) ではなく $(document).on(eventType, selector, handler) でイベント登録する。
たとえば bootstrap-button.js の初期化は以下のように行われている。
$(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { //略 })
自分が知っているやりかたは以下のようだった。
$('[data-toggle^=button]').on('click.button.data-api' , function (e) { //略 })
なぜ $(document)?と思ったんだけど、$(selector).on だと $(selector) で element を 1 周、.on でさらに 1 周の合計 2 周が必要な一方で、$(document).on だと 1 周しながら登録できるから合計 1 周で済むからなんだな。
$('[data-toggle^=button]') を何度も参照しなければならない場合はかわってくるだろうけど、単にイベント一発登録して終わりなら $(document).on が良いのだろう。