Upcoming Dermatology Conferences in Greece 2024 (2024)

  • Home
  • |
  • Conference by Greece

Top Categories in greece

Upcoming Dermatology Conferences in Greece 2024 (2)

Engineering and Technology

8 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (3)

Business and Economics

125 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (4)

Engineering

83 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (5)

Education

207 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (6)

Health and Medicine

206 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (7)

Interdisciplinary

98 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (9)

Physical and Life Sciences

128 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (10)

Regional Studies

10 Events

View More

Upcoming Dermatology Conferences in Greece 2024 (11)

Social Sciences and Humanities

83 Events

View More

International Dermatology Conferences in Greece 2024

Book your slot in advance for the upcoming Dermatology conference in Greece. Subscribe to the conference alert page to get the notification about the latest updates.Attend the Dermatology Conference in Greece 2024, an exceptional gathering of leading minds in the Dermatology industry. This year's conference is dedicated to "Unlocking Innovation in Dermatology. Immerse yourself in stimulating discussions, cutting-edge research presentations, and dynamic workshops that showcase the latest breakthroughs of Dermatology in Greece. Also, the keynote speakers from renowned institutions will shed light on emerging technologies and evidence-based practices, inspiring you to push the boundaries of Dermatology innovation.

If you wish to attend the Dermatology conference in the Greece in 2024, subscribe to our conference alert page. You can get every information about conferences on the Dermatology in the Greece as per your choice of venue and date. Also, you can book your slot in advance to not miss the opportunity to attend the desired conference in Greece on Dermatology.

Book your slot in advance for the upcoming Dermatology conference in Greece. Subscribe to the conference alert page to get the notification about the latest updates. ...Attend the Dermatology Conference in Greece 2024, an exceptional gathering of leading minds in the Dermatology industry. This year's conference is dedicated to "Unlocking Innovation in Dermatology. Immerse yourself in stimulating discussions, cutting-edge research presentations, and dynamic workshops that showcase the latest breakthroughs of Dermatology in Greece. Also, the keynote speakers from renowned institutions will shed light on emerging technologies and evidence-based practices, inspiring you to push the boundaries of Dermatology innovation.If you wish to attend the Dermatology conference in the Greece in 2024, subscribe to our conference alert page. You can get every information about conferences on the Dermatology in the Greece as per your choice of venue and date. Also, you can book your slot in advance to not miss the opportunity to attend the desired conference in Greece on Dermatology. Read More

List of Upcoming Dermatology Conferences in Greece 2024

Conference by Month

Popular Countries

Popular Cities in Greece

Popular Topics in Greece

Business & Economics
Engineering

Education
Health & Medicine

Interdisciplinary

Mathematics & Statistics
Physical & Life Sciences

Regional Studies
Social Sciences and Humanities

Engineering & Technology

Upcoming Dermatology Conferences in Greece 2024 (12)

Event Starts On

Upcoming Dermatology Conferences in Greece 2024 (13)

00

D

00

H

00

M

00

S

International Conference on Current Fashion Trends, Beauty, Apparel and Cosmetology (ICCFTBAC)

Upcoming Dermatology Conferences in Greece 2024 (14) Tue, 05 Mar 2024 | Upcoming Dermatology Conferences in Greece 2024 (15) Crete, Greece

Important Dates
Conference Date5th March 2024
Abstract Submission Deadline14th February 2024
Registration Deadline24th February 2024

View More About This Event

CLEAR ALL

MonthCountry CityTopic

Select Month
Popular Countries
Popular Cities in greece
Popular Topics
Business & Economics
Engineering
Education
Health & Medicine
Interdisciplinary
Mathematics & Statistics
Physical & Life Sciences
Regional Studies
Social Sciences and Humanities
Engineering & Technology
Subscribe

Search for Conference

' ].join(''); } function getDefaultRightArrow(settings) { return [ '

', ' ', '

' ].join(''); } function getTabContainerHtml() { return ''; } function getFixedContainerHtml() { return ''; } function getMovableContainerHtml() { return ''; } function getNewElScrollerElementWrappingNavTabsInstance($navTabsInstance, settings) { var $tabsContainer = $(getTabContainerHtml()); var leftArrowContent = settings.leftArrowContent || getDefaultLeftArrow(settings); var $leftArrow = $(leftArrowContent); var rightArrowContent = settings.rightArrowContent || getDefaultRightArrow(settings); var $rightArrow = $(rightArrowContent); var $fixedContainer = $(getFixedContainerHtml()); var $movableContainer = $(getMovableContainerHtml()); if (settings.disableScrollArrowsOnFullyScrolled) { $leftArrow.add($rightArrow).addClass(CONSTANTS.CSS_CLASSES.SCROLL_ARROW_DISABLE); } return $tabsContainer .append($leftArrow, $fixedContainer.append($movableContainer.append($navTabsInstance)), $rightArrow); } function getTabAnchorHtml() { return ''; } function getNewElTabAnchor(tab, propNames) { return $(getTabAnchorHtml()) .attr('href', '#' + tab[propNames.paneId]) .html(tab[propNames.title]); } function getNewElTabContent() { return $(''); } function getDefaultTabLiHtml() { return '
  • '; } function getNewElTabLi(tab, propNames, options) { var liContent = options.tabLiContent || getDefaultTabLiHtml(); var $li = $(liContent); var $a = getNewElTabAnchor(tab, propNames).appendTo($li); if (tab[propNames.disabled]) { $a.addClass('disabled'); $a.attr('data-toggle', ''); } else if (options.forceActiveTab && tab[propNames.active]) { $a.addClass('active'); } if (options.tabPostProcessor) { options.tabPostProcessor($li, $a); } return $li; } function getNewElTabPane(tab, propNames, options) { var $pane = $('') .attr('id', tab[propNames.paneId]) .html(tab[propNames.content]); if (options.forceActiveTab && tab[propNames.active]) { $pane.addClass('active'); } return $pane; } }()); // tabElements var tabUtils = (function () { return { didTabOrderChange: didTabOrderChange, getIndexOfClosestEnabledTab: getIndexOfClosestEnabledTab, getTabIndexByPaneId: getTabIndexByPaneId, storeDataOnLiEl: storeDataOnLiEl }; /////////////////// function didTabOrderChange($currTabLis, updatedTabs, propNames) { var isTabOrderChanged = false; $currTabLis.each(function (currDomIdx) { var newIdx = getTabIndexByPaneId(updatedTabs, propNames.paneId, $(this).data('tab')[propNames.paneId]); if ((newIdx > -1) && (newIdx !== currDomIdx)) { // tab moved isTabOrderChanged = true; return false; // exit .each() loop } }); return isTabOrderChanged; } function getIndexOfClosestEnabledTab($currTabLis, startIndex) { var lastIndex = $currTabLis.length - 1; var closestIdx = -1; var incrementFromStartIndex = 0; var testIdx = 0; // expand out from the current tab looking for an enabled tab; // we prefer the tab after us over the tab before while ((closestIdx === -1) && (testIdx >= 0)) { if ( (((testIdx = startIndex + (++incrementFromStartIndex)) <= lastIndex) && !$currTabLis.eq(testIdx).hasClass('disabled')) || (((testIdx = startIndex - incrementFromStartIndex) >= 0) && !$currTabLis.eq(testIdx).hasClass('disabled')) ) { closestIdx = testIdx; } } return closestIdx; } function getTabIndexByPaneId(tabs, paneIdPropName, paneId) { var idx = -1; tabs.some(function (tab, i) { if (tab[paneIdPropName] === paneId) { idx = i; return true; // exit loop } }); return idx; } function storeDataOnLiEl($li, tabs, index) { $li.data({ tab: $.extend({}, tabs[index]), // store a clone so we can check for changes index: index }); } }()); // tabUtils function buildNavTabsAndTabContentForTargetElementInstance($targetElInstance, settings, readyCallback) { var tabs = settings.tabs; var propNames = { paneId: settings.propPaneId, title: settings.propTitle, active: settings.propActive, disabled: settings.propDisabled, content: settings.propContent }; var ignoreTabPanes = settings.ignoreTabPanes; var hasTabContent = tabs.length && tabs[0][propNames.content] !== undefined; var $navTabs = tabElements.getNewElNavTabs(); var $tabContent = tabElements.getNewElTabContent(); var $scroller; var attachTabContentToDomCallback = ignoreTabPanes ? null : function() { $scroller.after($tabContent); }; if (!tabs.length) { return; } tabs.forEach(function(tab, index) { var options = { forceActiveTab: true, tabLiContent: settings.tabsLiContent && settings.tabsLiContent[index], tabPostProcessor: settings.tabsPostProcessors && settings.tabsPostProcessors[index] }; tabElements .getNewElTabLi(tab, propNames, options) .appendTo($navTabs); // build the tab panes if we weren't told to ignore them and there's // tab content data available if (!ignoreTabPanes && hasTabContent) { tabElements .getNewElTabPane(tab, propNames, options) .appendTo($tabContent); } }); $scroller = wrapNavTabsInstanceInScroller($navTabs, settings, readyCallback, attachTabContentToDomCallback); $scroller.appendTo($targetElInstance); $targetElInstance.data({ scrtabs: { tabs: tabs, propNames: propNames, ignoreTabPanes: ignoreTabPanes, hasTabContent: hasTabContent, tabsLiContent: settings.tabsLiContent, tabsPostProcessors: settings.tabsPostProcessors, scroller: $scroller } }); // once the nav-tabs are wrapped in the scroller, attach each tab's // data to it for reference later; we need to wait till they're // wrapped in the scroller because we wrap a *clone* of the nav-tabs // we built above, not the original nav-tabs $scroller.find('.nav-tabs > li').each(function (index) { tabUtils.storeDataOnLiEl($(this), tabs, index); }); return $targetElInstance; } function wrapNavTabsInstanceInScroller($navTabsInstance, settings, readyCallback, attachTabContentToDomCallback) { // Remove tab data stored by Bootstrap in order to fix tabs that were already visited $navTabsInstance .find('a[data-toggle="tab"]') .removeData(CONSTANTS.DATA_KEY_BOOTSTRAP_TAB); var $scroller = tabElements.getNewElScrollerElementWrappingNavTabsInstance($navTabsInstance.clone(true), settings); // use clone because we replaceWith later var scrollingTabsControl = new ScrollingTabsControl($scroller); var navTabsInstanceData = $navTabsInstance.data('scrtabs'); if (!navTabsInstanceData) { $navTabsInstance.data('scrtabs', { scroller: $scroller }); } else { navTabsInstanceData.scroller = $scroller; } $navTabsInstance.replaceWith($scroller.css('visibility', 'hidden')); if (settings.tabClickHandler && (typeof settings.tabClickHandler === 'function')) { $scroller.hasTabClickHandler = true; scrollingTabsControl.tabClickHandler = settings.tabClickHandler; } $scroller.initTabs = function () { scrollingTabsControl.initTabs(settings, $scroller, readyCallback, attachTabContentToDomCallback); }; $scroller.scrollToActiveTab = function() { scrollingTabsControl.scrollToActiveTab(settings); }; $scroller.initTabs(); listenForDropdownMenuTabs($scroller, scrollingTabsControl); return $scroller; } /* exported listenForDropdownMenuTabs, refreshTargetElementInstance, scrollToActiveTab */ function checkForTabAdded(refreshData) { var updatedTabsArray = refreshData.updatedTabsArray, updatedTabsLiContent = refreshData.updatedTabsLiContent || [], updatedTabsPostProcessors = refreshData.updatedTabsPostProcessors || [], propNames = refreshData.propNames, ignoreTabPanes = refreshData.ignoreTabPanes, options = refreshData.options, $currTabLis = refreshData.$currTabLis, $navTabs = refreshData.$navTabs, $currTabContentPanesContainer = ignoreTabPanes ? null : refreshData.$currTabContentPanesContainer, $currTabContentPanes = ignoreTabPanes ? null : refreshData.$currTabContentPanes, isInitTabsRequired = false; // make sure each tab in the updated tabs array has a corresponding DOM element updatedTabsArray.forEach(function (tab, idx) { var $li = $currTabLis.find('a[href="#' + tab[propNames.paneId] + '"]'), isTabIdxPastCurrTabs = (idx >= $currTabLis.length), $pane; if (!$li.length) { // new tab isInitTabsRequired = true; // add the tab, add its pane (if necessary), and refresh the scroller options.tabLiContent = updatedTabsLiContent[idx]; options.tabPostProcessor = updatedTabsPostProcessors[idx]; $li = tabElements.getNewElTabLi(tab, propNames, options); tabUtils.storeDataOnLiEl($li, updatedTabsArray, idx); if (isTabIdxPastCurrTabs) { // append to end of current tabs $li.appendTo($navTabs); } else { // insert in middle of current tabs $li.insertBefore($currTabLis.eq(idx)); } if (!ignoreTabPanes && tab[propNames.content] !== undefined) { $pane = tabElements.getNewElTabPane(tab, propNames, options); if (isTabIdxPastCurrTabs) { // append to end of current tabs $pane.appendTo($currTabContentPanesContainer); } else { // insert in middle of current tabs $pane.insertBefore($currTabContentPanes.eq(idx)); } } } }); return isInitTabsRequired; } function getTabAnchor($li) { return $li.find('a[role="tab"]'); } function checkForTabPropertiesUpdated(refreshData) { var tabLiData = refreshData.tabLi, ignoreTabPanes = refreshData.ignoreTabPanes, $li = tabLiData.$li, $contentPane = tabLiData.$contentPane, origTabData = tabLiData.origTabData, newTabData = tabLiData.newTabData, propNames = refreshData.propNames, isInitTabsRequired = false; // update tab title if necessary if (origTabData[propNames.title] !== newTabData[propNames.title]) { getTabAnchor($li).html(origTabData[propNames.title] = newTabData[propNames.title]); isInitTabsRequired = true; } // update tab disabled state if necessary if (origTabData[propNames.disabled] !== newTabData[propNames.disabled]) { if (newTabData[propNames.disabled]) { // enabled -> disabled getTabAnchor($li).addClass('disabled').attr('data-toggle', ''); } else { // disabled -> enabled getTabAnchor($li).removeClass('disabled').attr('data-toggle', 'tab'); } origTabData[propNames.disabled] = newTabData[propNames.disabled]; isInitTabsRequired = true; } // update tab active state if necessary if (refreshData.options.forceActiveTab) { // set the active tab based on the tabs array regardless of the current // DOM state, which could have been changed by the user clicking a tab // without those changes being reflected back to the tab data getTabAnchor($li)[newTabData[propNames.active] ? 'addClass' : 'removeClass']('active'); $contentPane[newTabData[propNames.active] ? 'addClass' : 'removeClass']('active'); origTabData[propNames.active] = newTabData[propNames.active]; isInitTabsRequired = true; } // update tab content pane if necessary if (!ignoreTabPanes && origTabData[propNames.content] !== newTabData[propNames.content]) { $contentPane.html(origTabData[propNames.content] = newTabData[propNames.content]); isInitTabsRequired = true; } return isInitTabsRequired; } function checkForTabRemoved(refreshData) { var tabLiData = refreshData.tabLi, ignoreTabPanes = refreshData.ignoreTabPanes, $li = tabLiData.$li, idxToMakeActive; if (tabLiData.newIdx !== -1) { // tab was not removed--it has a valid index return false; } // if this was the active tab, make the closest enabled tab active if (getTabAnchor($li).hasClass('active')) { idxToMakeActive = tabUtils.getIndexOfClosestEnabledTab(refreshData.$currTabLis, tabLiData.currDomIdx); if (idxToMakeActive > -1) { refreshData.$currTabLis .eq(idxToMakeActive) .find('a[role="tab"]') .addClass('active'); if (!ignoreTabPanes) { refreshData.$currTabContentPanes .eq(idxToMakeActive) .find('a[role="tab"]') .addClass('active'); } } } $li.remove(); if (!ignoreTabPanes) { tabLiData.$contentPane.remove(); } return true; } function checkForTabsOrderChanged(refreshData) { var $currTabLis = refreshData.$currTabLis, updatedTabsArray = refreshData.updatedTabsArray, propNames = refreshData.propNames, ignoreTabPanes = refreshData.ignoreTabPanes, newTabsCollection = [], newTabPanesCollection = ignoreTabPanes ? null : []; if (!tabUtils.didTabOrderChange($currTabLis, updatedTabsArray, propNames)) { return false; } // the tab order changed... updatedTabsArray.forEach(function (t) { var paneId = t[propNames.paneId]; newTabsCollection.push( $currTabLis .find('a[role="tab"][href="#' + paneId + '"]') .parent('li') ); if (!ignoreTabPanes) { newTabPanesCollection.push($('#' + paneId)); } }); refreshData.$navTabs.append(newTabsCollection); if (!ignoreTabPanes) { refreshData.$currTabContentPanesContainer.append(newTabPanesCollection); } return true; } function checkForTabsRemovedOrUpdated(refreshData) { var $currTabLis = refreshData.$currTabLis, updatedTabsArray = refreshData.updatedTabsArray, propNames = refreshData.propNames, isInitTabsRequired = false; $currTabLis.each(function (currDomIdx) { var $li = $(this), origTabData = $li.data('tab'), newIdx = tabUtils.getTabIndexByPaneId(updatedTabsArray, propNames.paneId, origTabData[propNames.paneId]), newTabData = (newIdx > -1) ? updatedTabsArray[newIdx] : null; refreshData.tabLi = { $li: $li, currDomIdx: currDomIdx, newIdx: newIdx, $contentPane: tabElements.getElTabPaneForLi($li), origTabData: origTabData, newTabData: newTabData }; if (checkForTabRemoved(refreshData)) { isInitTabsRequired = true; return; // continue to next $li in .each() since we removed this tab } if (checkForTabPropertiesUpdated(refreshData)) { isInitTabsRequired = true; } }); return isInitTabsRequired; } function listenForDropdownMenuTabs($scroller, stc) { var $ddMenu; // for dropdown menus to show, we need to move them out of the // scroller and append them to the body $scroller .on(CONSTANTS.EVENTS.DROPDOWN_MENU_SHOW, handleDropdownShow) .on(CONSTANTS.EVENTS.DROPDOWN_MENU_HIDE, handleDropdownHide); function handleDropdownHide(e) { // move the dropdown menu back into its tab $(e.target).append($ddMenu.off(CONSTANTS.EVENTS.CLICK)); } function handleDropdownShow(e) { var $ddParentTabLi = $(e.target), ddLiOffset = $ddParentTabLi.offset(), $currActiveTab = $scroller.find('li.nav-item > a.active').parent(), ddMenuRightX, tabsContainerMaxX, ddMenuTargetLeft; $ddMenu = $ddParentTabLi .find('.dropdown-menu') .attr('data-' + CONSTANTS.DATA_KEY_DDMENU_MODIFIED, true); // if the dropdown's parent tab li isn't already active, // we need to deactivate any active menu item in the dropdown if ($currActiveTab[0] !== $ddParentTabLi[0]) { $ddMenu.find('a.nav-link.active').removeClass('active'); } // we need to do our own click handling because the built-in // bootstrap handlers won't work since we moved the dropdown // menu outside the tabs container $ddMenu.on(CONSTANTS.EVENTS.CLICK, 'a[role="tab"]', handleClickOnDropdownMenuItem); $('body').append($ddMenu); // make sure the menu doesn't go off the right side of the page ddMenuRightX = $ddMenu.width() + ddLiOffset.left; tabsContainerMaxX = $scroller.width() - (stc.$slideRightArrow.outerWidth() + 1); ddMenuTargetLeft = ddLiOffset.left; if (ddMenuRightX > tabsContainerMaxX) { ddMenuTargetLeft -= (ddMenuRightX - tabsContainerMaxX); } $ddMenu.css({ 'display': 'block', 'top': ddLiOffset.top + $ddParentTabLi.outerHeight() - 2, 'left': ddMenuTargetLeft }); function handleClickOnDropdownMenuItem(e) { /* jshint validthis: true */ var $selectedMenuItemAnc = $(e.target), $selectedMenuItemDropdownMenu = $selectedMenuItemAnc.parent('.dropdown-menu'), targetPaneId = $selectedMenuItemAnc.attr('href'); if ($selectedMenuItemAnc.find('a').hasClass('active')) { return; } // once we select a menu item from the dropdown, deactivate // the current tab (unless it's our parent tab), deactivate // any active dropdown menu item, make our parent tab active // (if it's not already), and activate the selected menu item $scroller .find('li > a.active') .not($ddParentTabLi.find('> a.nav-link')) .add($selectedMenuItemDropdownMenu.find('li > a.nav-link.active')) .removeClass('active'); $ddParentTabLi.find('> a.nav-link').addClass('active'); // manually deactivate current active pane and activate our pane $('.tab-content .tab-pane.active').removeClass('active'); $(targetPaneId).addClass('active show'); } } } function refreshDataDrivenTabs($container, options) { var instanceData = $container.data().scrtabs, scroller = instanceData.scroller, $navTabs = $container.find('.scrtabs-tab-container .nav-tabs'), $currTabContentPanesContainer = $container.find('.tab-content'), isInitTabsRequired = false, refreshData = { options: options, updatedTabsArray: instanceData.tabs, updatedTabsLiContent: instanceData.tabsLiContent, updatedTabsPostProcessors: instanceData.tabsPostProcessors, propNames: instanceData.propNames, ignoreTabPanes: instanceData.ignoreTabPanes, $navTabs: $navTabs, $currTabLis: $navTabs.find('> li'), $currTabContentPanesContainer: $currTabContentPanesContainer, $currTabContentPanes: $currTabContentPanesContainer.find('.tab-pane') }; // to preserve the tab positions if we're just adding or removing // a tab, don't completely rebuild the tab structure, but check // for differences between the new tabs array and the old if (checkForTabAdded(refreshData)) { isInitTabsRequired = true; } if (checkForTabsOrderChanged(refreshData)) { isInitTabsRequired = true; } if (checkForTabsRemovedOrUpdated(refreshData)) { isInitTabsRequired = true; } if (isInitTabsRequired) { scroller.initTabs(); } return isInitTabsRequired; } function refreshTargetElementInstance($container, options) { if (!$container.data('scrtabs')) { // target element doesn't have plugin on it return; } // force a refresh if the tabs are static html or they're data-driven // but the data didn't change so we didn't call initTabs() if ($container.data('scrtabs').isWrapperOnly || !refreshDataDrivenTabs($container, options)) { $('body').trigger(CONSTANTS.EVENTS.FORCE_REFRESH); } } function scrollToActiveTab() { /* jshint validthis: true */ var $targetElInstance = $(this), scrtabsData = $targetElInstance.data('scrtabs'); if (!scrtabsData) { return; } scrtabsData.scroller.scrollToActiveTab(); } var methods = { destroy: function() { var $targetEls = this; return $targetEls.each(destroyPlugin); }, init: function(options) { var $targetEls = this, targetElsLastIndex = $targetEls.length - 1, settings = $.extend({}, $.fn.scrollingTabs.defaults, options || {}); // ---- tabs NOT data-driven ------------------------- if (!settings.tabs) { // just wrap the selected .nav-tabs element(s) in the scroller return $targetEls.each(function(index) { var dataObj = { isWrapperOnly: true }, $targetEl = $(this).data({ scrtabs: dataObj }), readyCallback = (index < targetElsLastIndex) ? null : function() { $targetEls.trigger(CONSTANTS.EVENTS.TABS_READY); }; wrapNavTabsInstanceInScroller($targetEl, settings, readyCallback); }); } // ---- tabs data-driven ------------------------- return $targetEls.each(function (index) { var $targetEl = $(this), readyCallback = (index < targetElsLastIndex) ? null : function() { $targetEls.trigger(CONSTANTS.EVENTS.TABS_READY); }; buildNavTabsAndTabContentForTargetElementInstance($targetEl, settings, readyCallback); }); }, refresh: function(options) { var $targetEls = this, settings = $.extend({}, $.fn.scrollingTabs.defaults, options || {}); return $targetEls.each(function () { refreshTargetElementInstance($(this), settings); }); }, scrollToActiveTab: function() { return this.each(scrollToActiveTab); } }; function destroyPlugin() { /* jshint validthis: true */ var $targetElInstance = $(this), scrtabsData = $targetElInstance.data('scrtabs'), $tabsContainer; if (!scrtabsData) { return; } if (scrtabsData.enableSwipingElement === 'self') { $targetElInstance.removeClass(CONSTANTS.CSS_CLASSES.ALLOW_SCROLLBAR); } else if (scrtabsData.enableSwipingElement === 'parent') { $targetElInstance.closest('.scrtabs-tab-container').parent().removeClass(CONSTANTS.CSS_CLASSES.ALLOW_SCROLLBAR); } scrtabsData.scroller .off(CONSTANTS.EVENTS.DROPDOWN_MENU_SHOW) .off(CONSTANTS.EVENTS.DROPDOWN_MENU_HIDE); // if there were any dropdown menus opened, remove the css we added to // them so they would display correctly scrtabsData.scroller .find('[data-' + CONSTANTS.DATA_KEY_DDMENU_MODIFIED + ']') .css({ display: '', left: '', top: '' }) .off(CONSTANTS.EVENTS.CLICK) .removeAttr('data-' + CONSTANTS.DATA_KEY_DDMENU_MODIFIED); if (scrtabsData.scroller.hasTabClickHandler) { $targetElInstance .find('a[data-toggle="tab"]') .off('.scrtabs'); } if (scrtabsData.isWrapperOnly) { // we just wrapped nav-tabs markup, so restore it // $targetElInstance is the ul.nav-tabs $tabsContainer = $targetElInstance.parents('.scrtabs-tab-container'); if ($tabsContainer.length) { $tabsContainer.replaceWith($targetElInstance); } } else { // we generated the tabs from data so destroy everything we created if (scrtabsData.scroller && scrtabsData.scroller.initTabs) { scrtabsData.scroller.initTabs = null; } // $targetElInstance is the container for the ul.nav-tabs we generated $targetElInstance .find('.scrtabs-tab-container') .add('.tab-content') .remove(); } $targetElInstance.removeData('scrtabs'); while(--$.fn.scrollingTabs.nextInstanceId >= 0) { $(window).off(CONSTANTS.EVENTS.WINDOW_RESIZE + $.fn.scrollingTabs.nextInstanceId); } $('body').off(CONSTANTS.EVENTS.FORCE_REFRESH); } $.fn.scrollingTabs = function(methodOrOptions) { if (methods[methodOrOptions]) { return methods[methodOrOptions].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (!methodOrOptions || (typeof methodOrOptions === 'object')) { return methods.init.apply(this, arguments); } else { $.error('Method ' + methodOrOptions + ' does not exist on $.scrollingTabs.'); } }; $.fn.scrollingTabs.nextInstanceId = 0; $.fn.scrollingTabs.defaults = { tabs: null, propPaneId: 'paneId', propTitle: 'title', propActive: 'active', propDisabled: 'disabled', propContent: 'content', ignoreTabPanes: false, scrollToTabEdge: false, disableScrollArrowsOnFullyScrolled: false, forceActiveTab: false, reverseScroll: false, widthMultiplier: 1, tabClickHandler: null, cssClassLeftArrow: '', cssClassRightArrow: '', leftArrowContent: '', rightArrowContent: '', tabsLiContent: null, tabsPostProcessors: null, enableSwiping: false, enableRtlSupport: false, handleDelayedScrollbar: false, bootstrapVersion: 4 }; }(jQuery, window));;(function($) { 'use strict'; $(activate); function activate() { $('.nav-tabs').scrollingTabs({ enableSwiping: true, scrollToTabEdge: true, disableScrollArrowsOnFullyScrolled: true }) .on('ready.scrtabs', function() { $('.tab-content').show(); }); }}(jQuery)); $('.head').click(function(){ $(this).toggleClass('active'); $(this).parent().find('.arrow').toggleClass('arrow-animate'); $(this).parent().find('.content').slideToggle(280);});
  • Upcoming Dermatology Conferences in Greece 2024 (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Allyn Kozey

    Last Updated:

    Views: 6456

    Rating: 4.2 / 5 (63 voted)

    Reviews: 94% of readers found this page helpful

    Author information

    Name: Allyn Kozey

    Birthday: 1993-12-21

    Address: Suite 454 40343 Larson Union, Port Melia, TX 16164

    Phone: +2456904400762

    Job: Investor Administrator

    Hobby: Sketching, Puzzles, Pet, Mountaineering, Skydiving, Dowsing, Sports

    Introduction: My name is Allyn Kozey, I am a outstanding, colorful, adventurous, encouraging, zealous, tender, helpful person who loves writing and wants to share my knowledge and understanding with you.