$.defineAttributePlugin('tabs', function ($element, options) { var animating = false, dataTab, slideSpeed = options.slideSpeed ? options.slideSpeed : 400; if (!$element.find("[data-tab-trigger]").hasClass('active')) { setTimeout(function () { $element.find("[data-tab-trigger]").first().trigger('click'); }, 50); } $element.find("[data-tab-trigger]").click(function (e) { e.preventDefault(); if (animating === true || $(this).hasClass('active')) { return; } animating = true; $(this).addClass('active').siblings().removeClass('active'); dataTab = $(this).data('tab-trigger'); $('[data-tab-content="' + dataTab + '"]').siblings('.active').slideUp(slideSpeed, function () { $(this).removeClass('active').removeAttr('style'); }); $('[data-tab-content="' + dataTab + '"]').slideDown(slideSpeed, function () { $(this).addClass('active').removeAttr('style'); animating = false; }); }); });