Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ($('.js-alert-message').length) {
- var $alertWrapper = $('.js-alert-message'),
- $alertMessage = $alertWrapper.find('.alert__message'),
- delay = 8000,
- curentState,
- $prevButton,
- prevTimerShow,
- prevTimerHide;
- function hideMessage(_classes, callback) {
- var _classList = _classes || 'news success fail';
- $alertWrapper.toggleClass('is-active');
- $('.js-alert').attr('disabled', 'disabled');
- var timer = setTimeout(function () {
- $alertWrapper.toggleClass(_classList);
- $alertMessage.html('');
- $('.js-alert').removeAttr('disabled');
- if (typeof callback !== 'undefined') {
- callback();
- }
- }, 500);
- return timer;
- }
- function fadeToggle(_classes, _delay) {
- $alertWrapper.toggleClass(_classes);
- $alertWrapper.toggleClass('is-active');
- var timer = setTimeout(function() {
- hideMessage(_classes);
- }, _delay);
- return timer;
- }
- function clickHandler() {
- var $this = $(this),
- message = $this.attr('data-message');
- if ($prevButton === this) {
- return;
- }
- if ($(this).attr('disabled')) {
- return;
- }
- function fadeInMessage() {
- curentState = $this.attr('data-type');
- $alertMessage.html(message);
- return fadeToggle(curentState, delay);
- }
- if ($alertWrapper.hasClass('is-active')) {
- hideMessage(curentState, function () {
- clearTimeout(prevTimerShow);
- prevTimerShow = fadeInMessage();
- });
- } else {
- prevTimerShow = fadeInMessage();
- }
- $prevButton = this;
- }
- $('.js-alert').on('click', clickHandler);
- $('.js-alert-message .alert__close').on('click', hideMessage);
- }
Add Comment
Please, Sign In to add comment