Javascript函数未被调用

时间:2014-12-29 17:31:42

标签: javascript html

我正在尝试制作一个测试某人学习不同外来词的能力的程序。为此我需要一个隐藏DIV的javascript函数,并填充一个空函数,然后调用setTimeout()。问题是这个功能没有被我所知道的调用。

我试图在网上找到答案,但找不到有效的解决方案,也许你们其中一个人可以提供帮助。这是我的代码:

<html>
<head>
    <style type="text/css">
        #starter
        {
            text-align: center;
            margin-top: 15%;
        }

        #main
        {
            text-align: center;
            z-index: -1;
            <?php
                $i = rand(1, 8); 
                switch($i) {    

                }
            ?>
        }
    </style>
    <script type="text/javascript">

        function weghalen(var element) {
            var element = document.getElementById('starter');
                element.parentNode.removeChild(element);
        }

        function volgendePagina() {
            window.location.href = "test.php";
        }

        function startOnderzoek() {
            weghalen('starter');

            var tekst = <?php include 'Scripts.php'; echoWoorden(); ?>;
            document.getElementById('mainP').innerHTML = tekst;

            setTimeout(volgendePagina(), 6000);
        }

    </script>
</head>

<body>
    <div id="starter">
        <p>
            Als u op 'Start onderzoek' druk begint uw timer van 6 seconden te lopen. Aan het einde van uw 6 seconden wordt u vanzelf naar een volgende pagina gebracht.
        </p>
        <a href="javascript: startOnderzoek()">
            <input type="button" value="Start onderzoek" />
        </a>
    </div>
    <div id="mainDIV">
        <p id="mainP"></p>
    </div>
</body>

提前致谢!

3 个答案:

答案 0 :(得分:1)

尝试:

setTimeout(volgendePagina, 6000);

setTimeout(function(){ volgendePagina() }, 6000);

同样在这里:

function weghalen(var element) {
    var element = document.getElementById('starter');
        element.parentNode.removeChild(element);
}

首先,您不要在函数的括号之间包含var。 其次,您正在创建一个与函数参数同名的变量,因此该语言不知道您要在哪个地方使用。 把它改成这样的东西:

function weghalen(el) {
    var element = document.getElementById('starter');
    element.parentNode.removeChild(el);
}

答案 1 :(得分:1)

尝试更改链接以使用onclick:

<a href="javascript:void(0);" onclick="startOnderzoek(); return false;">

您还需要将setTimeout更改为:

setTimeout(volgendePagina, 6000);

在volgendePagina之后使用括号将导致它立即执行而不是在6秒启动时执行。

另请参考Paul所说的关于weghalen函数的内容。该参数的名称与您正在创建的变量相同。

您可能需要考虑重构函数,如下所示:

function weghalen(child) {
    var element = document.getElementById('starter');
        element.parentNode.removeChild(child);
}

我也不确定weghalen的逻辑是否会按预期运作。

答案 2 :(得分:1)

检查您的JS控制台:您不能在函数参数声明中包含var。变化:

function weghalen(var element) {

为:

function weghalen(element) {