为什么我的事件处理程序在我的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>
答案 0 :(得分:3)
您已将事件处理程序方法包装到另一个方法中。打电话给你的方法,它会起作用
cl();
但是,我宁愿通过等待文档加载来初始化该页面上的脚本:
function init() {
button.onclick = function (){
alert('this works');
}
}
document.onload = init();
我将在主体标记之后移动包含JS代码的脚本标记,只是为了使其不引人注目,以便代码看起来像:
...
</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>
答案 1 :(得分:0)
您的cl
函数中的代码未被调用,因为该函数未在任何地方调用。
您可以删除函数声明,如:
function cl(){
document.getElementById('but').onclick = function() {
alert('fdsfsdf');
};
或者通过调用cl();
来调用函数进入代码:
cl();
function cl(){
document.getElementById('but').onclick = function() {
alert('fdsfsdf');
};
看看here