17

Aşağıdaki HTML vardır:Tıklama etkinlik

<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> 

Sekmeleri geçiş yaparken meydana gelen bir olay gerekir. Şunun gibi:

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

Ben birçok seçenek çalıştı, ancak başarılı olamadım. Her türlü yardıma minnettar olurum.

+5

deneyin '$ ('nav-sekmeleri ') bağlama (' klik', function (e) {...});' ve DOM unutma hazır işleyici – karthikr

+0

@karthikr, teşekkürler, işte! – Denis

+1

* "jQuery 1.7'den itibaren .on() yöntemi, olay işleyicilerinin bir belgeye eklenmesi için tercih edilen yöntemdir." * From from http://api.jquery.com/bind/ – DanFromGermany

cevap

41

nihai benim çözüm:.

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

Bu kodu nasıl değiştirebilirim? bir [data-toggle = "tab"] sırasında: son bir olay tetiklenir, ancak diğer sekmelerde farklı bir olay varsa. –

+1

@Greg L, bence bunu denemeliyiz: $ (document) .on ('shown.bs.tab', 'a [data-toggle = "tab"]: last', function (e) { console.log (e.target) // etkinleştirilmiş sekme }) $ (document) .on ('shown.bs.tab', 'a [data-toggle = "tab"]: not (: last)' işlev (e) { console.log (e.target) // etkinleştirilmiş sekme }) – Denis

+0

İyi. Ancak şu anda açılan sekme tekrar tıklandığında nasıl bir olay olur? – Bryce