17

我有以下HTML:單擊自舉3個標籤事件

<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()方法是將事件處理程序附加到文檔的首選方法。」* from 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

@Greg L,我想我們應該試試這個: $(document).on('shown.bs.tab','a [data-toggle =「tab」]:last',function(e){ console.log(e.target)//激活標籤 }) $(document).on('shown.bs.tab','a [data-toggle =「tab」]:not(:last)' ,功能(e){console.log(e.target)//激活標籤 }) – Denis

+0

好。但是如果當前打開的選項卡再次被點擊,我該如何獲得一個事件? – Bryce