1

为什么我的事件处理程序在我的 javascript 函数中不起作用。如果在 js 函数中访问按钮事件处理程序的方法是错误的,而不是如何正确执行?

<script type="text/javascript">

function cl(){
    var button = document.getElementById('but');
    button.onclick = function (){
        alert('this works');
    }
}

</script>
</head>
<body>
<input type="button" value = "click" id = "but">
</body>
4

2 回答 2

3

您已将事件处理程序方法包装到另一个方法中。调用您的方法,它将起作用

cl();

但是,我宁愿通过等待文档加载来初始化该页面上的脚本:

  function init() {
      button.onclick = function (){
          alert('this works');
      }
  }
  document.onload = init();

我会将包含 JS 代码的脚本标记移到 body 标记之后,以使其不显眼,因此代码应如下所示:

...
</head>
<body>
<input type="button" value="click" id="but">
<script type="text/javascript">
    function init() {
        var button = document.getElementById('but');
        button.onclick = function (){
            alert('this works');
        }
    }
    document.onload = init();
</script>
</body>
于 2013-06-04T11:46:01.877 回答
0

您的函数中的代码cl没有被调用,因为该函数没有在任何地方调用。

您可以删除函数声明,例如:

function cl(){
   document.getElementById('but').onclick = function() {
   alert('fdsfsdf');
};

或者,您可以通过以下方式调用该函数以进入代码cl();

cl();    
function cl(){
   document.getElementById('but').onclick = function() {
   alert('fdsfsdf');
};

看看这里

于 2013-06-04T11:57:43.723 回答