按钮onclick事件不会触发

时间:2019-02-20 00:14:06

标签: javascript html button onclick

请帮助。任务是:“编写一个JavaScript程序,通过定期从字符串末尾删除一个字母并将其附加到前面,来向正确的方向旋转字符串'w3resource'。”


function moveIt() {
    var element = document.getElementById("target");
    var textNode = element.childNodes[0];
    var text = textNode.nodeValue;

    setInterval(function() {
        text = text[text.length - 1] + text.substring(0, text.length - 1);
        textNode.nodeValue = text;
    }, 500);
}
<body>    
  <button type="button" onclick="animate('target')">click to animate</button>    
  <p id="target">w3resource</p>
</body>

当我将其应用于document.body中的onload事件时,该函数有效,但不适用于按钮。我做错了什么?

2 个答案:

答案 0 :(得分:1)

DOM已经使用了名称animate。只需更改函数的名称即可。它将起作用。

由于您通过id获取元素,因此无需设置函数的参数。

function moveIt() {
    var element = document.getElementById("target");
    var textNode = element.childNodes[0];
    var text = textNode.nodeValue;

    setInterval(function() {
        text = text[text.length - 1] + text.substring(0, text.length - 1);
        textNode.nodeValue = text;
    }, 500);
}
<body>
  <button type="button" onclick="moveIt()">click to animate</button>
  <p id="target">w3resource</p>
</body>

答案 1 :(得分:1)

我认为您正在调用保留的方法名称,也使用的是字符串值而不是变量。更改为foo,它可以正常工作。

<body>

<button type="button" onclick="foo('target')">click to animate</button>

<p id="target">w3resource</p>
<script>
function foo(target){
            var element = document.getElementById(target);
            var textNode = element.childNodes[0];
            var text = textNode.nodeValue;

            setInterval(function() {
                text = text[text.length - 1] + text.substring(0, text.length - 1);
                textNode.nodeValue = text;
            }, 500);
        }
</script>
</body>