Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种方法可以在一个按钮的2次点击上分配2个单独的功能?_Javascript_Html_Css_Animation_Button - Fatal编程技术网

Javascript 有没有一种方法可以在一个按钮的2次点击上分配2个单独的功能?

Javascript 有没有一种方法可以在一个按钮的2次点击上分配2个单独的功能?,javascript,html,css,animation,button,Javascript,Html,Css,Animation,Button,我想: 在第一次单击时播放动画,然后 在我第二次点击同一个按钮时停止。 谢谢。这里是使用闭包的最简单的解决方案,您应该了解有关如何工作的更多信息 函数GenerateSystemFullFunction{ var someState=false; return函数不执行任何操作的实际函数{ 如果某个州{ console.logState将设置为false,单击next不会触发此消息; } someState=!someState; } } var onClickHandler=generate

我想: 在第一次单击时播放动画,然后 在我第二次点击同一个按钮时停止。
谢谢。

这里是使用闭包的最简单的解决方案,您应该了解有关如何工作的更多信息

函数GenerateSystemFullFunction{ var someState=false; return函数不执行任何操作的实际函数{ 如果某个州{ console.logState将设置为false,单击next不会触发此消息; } someState=!someState; } } var onClickHandler=generateMyStatefullFunction; document.getElementByIdbutton.addEventListener'click',onClickHandler; 每秒发射一次点击你可以这样做

函数性能事件{ var按钮=event.currentTarget; var action=button.innerHTML; i动作==播放{ button.innerHTML=停止 //播放动画 }否则{ button.innerHTML=播放 //停止动画 } } 玩
关键是在闭包中,将一个函数包装在一个包含运行布尔状态局部变量的iffy中,您的函数使用该变量来确定它是否停止运行,或者使用一个简单的if/then/elseThat来运行。它不在SO的范围内,但是。。。您必须将状态保存到任何位置,以便在“单击处理程序”中进行检查。onclick toggle有两个功能,一个用于动画,一个用于停止动画。@面试者问我如何让按钮切换到“开”或“关”状态?我真的不知道什么是闭包,但谢谢!我不知道为什么有人否决了我,所以我和你一样困惑。。。在这里找到更多关于闭包的信息:闭包在JavaScription中是一个非常重要的概念。虽然这毫无疑问是可行的,但它依赖于外部因素,这是您不想做的事情,请查看下面的答案,以获得更好的实践方法。@Dellirium-您的解决方案很好,但这家伙需要一个更简单的解决方案。我想有人很生气,idk,我的也是