17

I次のようなHTMLがあります。Clickイベント

<div id="channels"> 
    <ul class="nav nav-tabs" id="ul-channels"> 
     <li class="channel" data-roomid="lobby"><a class="link-channel" href="#lobby" data-toggle="tab">lobby</a></li> 
     <li class="channel active selected" data-roomid="test"><a class="link-channel" href="#test" data-toggle="tab">test</a></li> 
    </ul> 
</div> 

私はタブを切り替えるときに発生するイベントを必要とします。このように:

$('.nav-tabs a').click(function (e) { 
    alert("Q"); 
}); 

私は多くのオプションを試しましたが、私は成功しませんでした。私はどんな助けにも感謝します。

+5

てみ '$( '-タブをNAV。 ')バインド(' クリック'、機能(E){...});'とDOMを忘れてはいけません。準備ができているハンドラ – karthikr

+0

@karthikr、ありがとう、それは仕事です! – Denis

+1

* "jQuery 1.7では、イベントハンドラをドキュメントに添付するには.on()メソッドが優先されます。" * http://api.jquery.com/bind/ – DanFromGermany

答えて

41

最終私の解決策:

$(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) { 
    console.log(e.target) // activated tab 
}) 
+0

このコードを変更するにはどうすればよいですか一方、[data-toggle = "tab"]の場合、最後の1つのイベントは発生しますが、他のタブの場合は別のイベントが発生します。 –

+1

@Greg L、私たちはこれを試してみるべきだと思います: $(document).on( 'shown.bs.tab'、 'a [データトグル= "タブ"]:最後'、関数(e){ console.log(e.target)// activated tab } $(document.bs.tab '、' a [データトグル= "タブ"]:not(:last) 、function(e){ console.log(e.target)//活性化されたタブ }) – Denis

+0

良い。しかし、現在開いているタブをもう一度クリックすると、どうやってイベントを受け取ることができますか? – Bryce