0

我认为不会在这里是正确的词。我不能让它运行。

这是一段非常简单的代码。如果我只是输入alert("Working");它运行良好。

无论如何,这是整个代码,也许你们可以帮助我找出我做错了什么。

<!DOCTYPE html>
<html>
<head>
    <title>Events</title>
</head>
<body>
<script type="text/javascript">
    var btn = document.getElementById("btn");
    btn.attachEvent("onclick", function(){
        alert("Clicked");
    })

</script>
<input id="btn" type="button" value="Press me">
</body>
</html>
4

3 回答 3

3

几个问题:

  1. 在加载文档之后,您的代码才能运行。如果它运行得太快,它不会在页面中找到对象。最简单的方法是将代码块移动到</body>标签之前。
  2. attachEvent()仅适用于旧版本的 IE。所有现代浏览器都支持.addEventListener().

修改后的 HTML/代码:

<!DOCTYPE html>
<html>
<head>
    <title>Events</title>
</head>
<body>
<input id="btn" type="button" value="Press me">
<script type="text/javascript">
    var btn = document.getElementById("btn");
    btn.addEventListener("click", function(){
        alert("Clicked");
    })

</script>
</body>
</html>

工作演示:http: //jsfiddle.net/jfriend00/Dmqdn/

于 2013-10-22T00:45:47.963 回答
0

为了在 FF(和其他现代浏览器)上工作:

document.addEventListener("DOMContentLoaded", function(event) {
    var btn = document.getElementById('btn');
    btn.addEventListener('click', function() {
        console.log('Clicked');
    });
});

在尝试访问之前确保 DOM 已完全加载是最安全的。

我用过console.log,你应该熟悉它,它会对你有很大帮助。查看 FireBug for FF,Chrome 中的开发工具。

于 2013-10-22T00:45:41.577 回答
0

这是说明解决方案的jsfiddle。你需要做两件事来完成这项工作:

  1. <script>标签移到输入下方
  2. 替换attachEventaddEventListenerattachEvent不再支持

这是代码:

<input id="btn" type="button" value="Press me">

<script type="text/javascript">
    var btn = document.getElementById("btn");
    btn.addEventListener("click", function(){
        alert("Clicked");
    })
</script>
于 2013-10-22T00:48:45.387 回答