连接功能

时间:2017-01-31 19:15:34

标签: javascript function concatenation

这背后的想法是使用鼠标滚轮动画部分 - 键盘并在输入和退出时滑动。每个部分都有不同的动画。 一切都是全局变量中的包装。这是一个更大的样本

SKNode

到目前为止一直很好,直到调用funcEnter()并且没有任何事情发生 我仍然坚持打电话给那些功能...对不起家伙我真的不是一个javascript程序员,我正在学习过程,这样它让我很容易阅读,所以我很乐意继续使用这个"编码" ...有人有线索吗?感谢

2 个答案:

答案 0 :(得分:1)

您的连接是正确的,但如果您没有创建全局函数来执行此操作会更好。相反,将它们放在您自己的对象中并通过那里访问函数。

var sectionFuncs = {
  A: {
    enter: function() {
      console.log('Entering A');
    },
    exit: function() {
      console.log('Exiting A');
    }
  },
  B: {
    enter: function() {
      console.log('Entering B');
    },
    exit: function() {
      console.log('Exiting B');
    }
  }
};

function onClick() {
  var section = this.getAttribute('data-section');
  var functions = sectionFuncs[section];
  functions.enter();
  console.log('In between...');
  functions.exit();
}
var buttons = document.querySelectorAll('button');
for (var i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener('click', onClick);
}
<button data-section="A">A</button>
<button data-section="B">B</button>

答案 1 :(得分:0)

您可以拥有一个包含这些函数的对象,其名称为:

var enterExitFns = {
    intro: {
        enter: function () {
            // animation code for intro enter
        },
        exit: function () {
            // animation code for intro exit
        }
    },
    details: {
        enter: function () {
            // animation code for details enter
        },
        exit: function () {
            // animation code for details exit
        }
    }
};

var name = activeSection.attr('data-name');

enterExitFns[name].enter();