调用JavaScript函数的方法

调用JavaScript函数的方法,javascript,function,call,function-call,Javascript,Function,Call,Function Call,当div的display设置为none时,如何调用JavaScript函数 这是我的代码: if(document.getElementById("myDiv").style.display == "none"){ myFunction(); } 我在想有一个函数,每次都会重复(类似于ActionScriptEnter_FRAME事件),其中包含if语句,但我认为这会造成很大的延迟 对不起,如果我不够清楚的话 我可以想出两个选择 上面的内容将通过setInterval调用 或 既然您正在等

当div的display设置为none时,如何调用JavaScript函数

这是我的代码:

if(document.getElementById("myDiv").style.display == "none"){

myFunction();

}
我在想有一个函数,每次都会重复(类似于ActionScriptEnter_FRAME事件),其中包含if语句,但我认为这会造成很大的延迟


对不起,如果我不够清楚的话

我可以想出两个选择

  • 上面的内容将通过setInterval调用
  • 既然您正在等待一个编程事件,为什么不在显示myDiv的同时调用myFunction呢

  • 不幸的是,我不相信有一个本地的方式来倾听风格的变化。我将创建一些代理函数。无论何时要隐藏或显示div,都可以调用这些代理函数,而不是直接设置样式

    function hideMyDiv() {
        document.getElementById("myDiv").style.display = "none";
        myFunction();
    }
    
    function showMyDiv() {
        document.getElementById("myDiv").style.display = "block";
    }
    

    Coomie建议使用setInterval进行轮询,这不会提高处理器的效率。

    试图找出一个有用的说法

    基本上,您希望尝试和设计您的软件,这样您就不需要尝试和做这种事情

    也许你最简单的方法就是采纳JoJo的建议


    另一种方法是添加一点抽象,这样无论导致div被隐藏的原因是什么,都会引发一个事件,事件的一个侦听器隐藏div,另一个侦听器执行其他操作。

    1。我曾考虑使用setInterval,但正如JoJo所说,它不会是处理器效率高的2。div已经加载,我只想在用户单击按钮将div变为不可见(这是一个相当复杂的脚本)时调用脚本,shmrocessor。。。它正在客户端上运行,不是吗。它不需要每毫秒轮询一次,javascript运行速度非常快。如果没有其他解决方案,我不认为这是一个问题。如果可能的话,我会倾向于第二种选择。沙米尔,不要走向黑暗面。诉诸轮询是糟糕的代码结构的标志。恐惧导致愤怒,愤怒导致仇恨,仇恨导致痛苦,痛苦导致黑暗面。释放你的愤怒,沙米尔。。。。等等,不,事实上我同意,我不会那样做。说真的,如果可能的话,试试另一种选择!!!在与代码进行了一些争论之后,我选择了2号方法。感谢您的帮助。就是这样,我调用代理函数的唯一方法是使用内置触发器(onClick、onLoad等)。我需要一种方法让js自动检测页面上的更改。他提到了观察者模式:。根据项目的复杂性,这可能是可行的,也可能不是可行的。