17

मैं निम्न HTML है:क्लिक करें घटना

<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

कोशिश '$ ('। एनएवी-टैब') बाँध ('क्लिक', समारोह (ई) {...});' और न डोम भूल तैयार हैंडलर – karthikr

+0

@ कार्तिकर, धन्यवाद, यह काम है! – Denis

+1

* 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

मैं इस कोड कैसे बदल सकता हूँ से "jQuery 1.7 के रूप में, .on() प्रणाली दस्तावेज़ में ईवेंट हैंडलर्स संलग्न के लिए पसंदीदा तरीका है।" *, इसलिए कि एक [डेटा-टॉगल = "टैब"] पर: आखिरी एक घटना आग लग जाएगी, लेकिन अगर किसी अन्य टैब पर एक अलग घटना होती है। –

+1

@ ग्रेग एल, मुझे लगता है कि हमें यह कोशिश करनी चाहिए: $ (दस्तावेज़) .on ('show.bs.tab', 'a [data-toggle = "टैब"]: अंतिम', फ़ंक्शन (ई) { console.log (e.target) // सक्रिय टैब }) $ (दस्तावेज़) .on ('shown.bs.tab', 'एक [डेटा-टॉगल = "टैब"]: नहीं (: पिछले) , समारोह (ई) { console.log (e.target) // सक्रिय टैब }) – Denis

+0

अच्छा। लेकिन यदि वर्तमान में खोला गया टैब फिर से क्लिक किया गया है तो मुझे एक ईवेंट भी कैसे प्राप्त होगा? – Bryce

संबंधित मुद्दे