jquery - Twitter Bootstrap event.relatedTarget to remove class? -
this should simple, somehow not working.
i trying change active class of list groups upon click of bootstrap tab events.
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { $(e.target).addclass('active'); // activated tab $(e.relatedtarget).removeclass('active'); // previous tab //alert ($(e.relatedtarget).attr('href')); }); i able add class e.target e.relatedtarget not working. help?
<div class="list-group" id="masterpagetabs"> <a href="#lv" class="list-group-item active" data-toggle="tab">language variations</a> <a href="#hm" class="list-group-item" data-toggle="tab">hotel master</a> <a href="#gm" class="list-group-item" data-toggle="tab">generics master</a> </div> as can refer, not using default ul li structure tabs, instead using bootstrap 3 list groups js tabs.
update code comment show (a) ul used select elements.
you try extend / overwrite show function of tab plugin. like:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script src="bootstrap3/bootstrap-3.0.0-wip/dist/js/bootstrap.min.js"></script> <script> $.fn.tab.constructor.prototype.show = function () { var $this = this.element selector = $this.attr('href') selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip ie7 var previous = $('.list-group').find('.active:last')[0] var e = $.event('show.bs.tab', { relatedtarget: previous }) $this.trigger(e) if (e.isdefaultprevented()) return var $target = $(selector) this.activate($target, $target.parent(), function () { $this.trigger({ type: 'shown.bs.tab' , relatedtarget: previous }) }) } $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { $(e.target).addclass('active'); // activated tab console.log(e.relatedtarget); $(e.relatedtarget).removeclass('active'); // previous tab }); </script> event.relatedtarget undefined cause set mouse events. has nothing structure or twitter bootstrap.
see: https://developer.mozilla.org/en-us/docs/web/api/event.relatedtarget
Comments
Post a Comment