js, разобрать var обратно в родительский - PullRequest
0 голосов
/ 27 марта 2012

У меня есть две функции, родительская функция __triggerAction, чем дочерняя функция __triggerNormal, родительский $ current которого обновляется, как проанализировать новый

$current = $index

из __triggerNormal обратно к __triggerAction?

  _triggerAction = function(el, click, fx) {
    var $current, $link;
    $link = el.find('.tab-menu').find('li');
    $current = 0;
    if (click) {
      log('Trigger by click');
      return $link.click(function() {
        return __triggerNormal(this, el, $current, fx);
      });
    } else {
      log('Trigger by hover');
      return $link.hover(function() {
        return __triggerNormal(this, el, $current, fx);
      });
    }
  };

 __triggerNormal = function(thisEl, el, $current, fx) {
    var $index;
    if (!($(thisEl).hasClass("active"))) {
      log('current slide ' + $current);
      log($index = $(thisEl).index());
      __addRemoveClass(thisEl);
      __fxAction(el, fx, $current, $index);
      return $current = $index;
    }
};

1 Ответ

0 голосов
/ 27 марта 2012

Вместо

return __triggerNormal(this, el, $current, fx);

do

$current = __triggerNormal(this, el, $current, fx);
return $current;

$current не распределяется между функциями, поэтому внутри __triggerNormal,

return $current = $index;

простообновляет локальную переменную.Вы можете просто написать

return $index;

Кстати, возвращаемое значение обработчиков событий используется только для определения, следует ли предотвратить действие по умолчанию и остановить распространение или нет.* В вашем случае return $current вообще не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...