简体   繁体   English

如何启用和禁用 javascript 功能?

[英]How to enable and disable javascript functions?

             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");

            }
         }

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 那么您不必检查是否启用了,只需致电它们,它们便会起作用或想要取决于它们是否已启用

just declare a global variable只需声明一个全局变量

var stopfunction=false;

and as a first line in your function并作为函数中的第一行

if (stopfunction) return;

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");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM