Событие не запускается для emulateTransitionEnd - PullRequest
0 голосов
/ 29 октября 2018

Когда я запускаю приведенный ниже код со слишком высоким TRANSITION_DURATION, функция никогда не выполняется.

_el.height(_el[0].scrollHeight)
 .one(Util.TRANSITION_END, complete)
 .emulateTransitionEnd(TRANSITION_DURATION);

Например, когда TRANSITION_DURATION установлено на 350, событие никогда не вызывается. Однако, когда TRANSITION_DURATION установлен в 1, событие происходит.

Пытаетесь понять причины? Кто-нибудь понимает это лучше?

Контекст кода см. Ниже, конкретный вопрос касается строки в конце функции _show:

MetisMenu.prototype._show = function _show(element) {
  if (this._transitioning || $(element).hasClass(this._config.collapsingClass)) {
    return;
  }
  var _this = this;
  var _el = $(element);

  var startEvent = $.Event(Event.SHOW);
  _el.trigger(startEvent);

  if (startEvent.isDefaultPrevented()) {
    return;
  }

  _el.parent(this._config.parentTrigger).addClass(this._config.activeClass);

  if (this._config.toggle) {
    this._hide(_el.parent(this._config.parentTrigger).siblings().children(this._config.subMenu + '.' + this._config.collapseInClass).attr('aria-expanded', false));
  }

  _el.removeClass(this._config.collapseClass).addClass(this._config.collapsingClass).height(0);

  this.setTransitioning(true);

  var complete = function complete() {
    console.log("running complete")
    _el.removeClass(_this._config.collapsingClass).addClass(_this._config.collapseClass + ' ' + _this._config.collapseInClass).height('').attr('aria-expanded', true);

    _this.setTransitioning(false);

    _el.trigger(Event.SHOWN);
  };

  if (!Util.supportsTransitionEnd()) {
    complete();
    return;
  }
  _el.height(_el[0].scrollHeight).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...