如何启用和禁用 javascript 功能?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7131925/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to enable and disable javascript functions?
提问by Benny
if(tmpStr == tmp+value)
{
i=1;
action = null;
action2 = null;
}
if(tmpStr1 == tmp+value)
{
i=0;
action();//not working
action2();//not working
}
for(i;i<=14; i++)
{
if(tmp!="movie"+i)
{
document.getElementById("movie"+i).sndToAS("resume");
}
}
}
function action()
{
document.getElementById("movie0").sndToAS("pause");
}
function action2()
{
if(tmp != "movie0")
{
document.getElementById("movie0").sndToAS("pause");
}
}
回答by Tristan
Do something like this
做这样的事情
function actionFunc(){
document.getElementById("movie0").sndToAS("pause");
}
function action2Func()
{
if(tmp != "movie0"){
document.getElementById("movie0").sndToAS("pause");
}
}
window.action = actionFunc;
window.action2 = action2Func;
if(tmpStr == tmp+value)
{
id=1;
window.action = null;
window.action2 = null;
}
if(tmpStr1 == tmp+value)
{
id=0;
window.action = actionFunc;
window.action2 = action2Func;
}
Then when you want to call your functions all you have to do is
然后当你想调用你的函数时,你所要做的就是
action();
action2();
but your going to want to check if the are set before calling them
但是您要在调用它们之前检查它们是否已设置
I believe thats what your after
我相信这就是你的追求
or do something like this
或者做这样的事情
function action(){
if (window.actionEnabled)
{
document.getElementById("movie0").sndToAS("pause");
}
}
function action2()
{
if (window.action2Enabled)
{
if(tmp != "movie0"){
document.getElementById("movie0").sndToAS("pause");
}
}
}
window.actionEnabled = true;
window.action2Enabled = true;
if(tmpStr == tmp+value)
{
id=1;
window.actionEnabled = false;
window.action2Enabled = false;
}
if(tmpStr1 == tmp+value)
{
id=0;
window.actionEnabled = true;
window.action2Enabled = true;
}
then you don't have to check if the are enabled just call them and they will work or want depending on if they are enabled
那么您不必检查它们是否已启用只需调用它们,它们将工作或需要取决于它们是否已启用
回答by Alex Curtis
If you don't want a function to execute when in a particular state, I would wrap your function do a state check and then a return if in an inappropriate state.
如果您不希望函数在特定状态下执行,我会将您的函数包装起来进行状态检查,然后在处于不适当状态时返回。
function action(obj){
if(obj.state == <a state you dont want to execute>)
return;
action();
}
function action(){
document.getElementById("movie0").sndToAS("pause");
}