从按钮调用警报函数,但不使用onclick
Calling an alert function from a button but without using onclick
我想做的是调用我的函数从每当有人点击我的按钮。然而,我知道这可以用
来完成<button onclick="myFuntion()>
但是我想跳过这一步,我不想在我的按钮功能,我听说这是糟糕的编程。
但是,我的文件是这样的
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javacript" src="javascript.js"> </script>
<title> Javascript </title>
<script>
function testFunction(){
document.getElementById("test").onclick = Hello;
}
function Hello(){
alert("Hello");
}
</script>
</head>
<body>
<button type="button" id="test" <!-- I know i can use onclick="testFunction()" here but i dont wanna !-->> Click me </button>
</body>
</html>
那么为什么它不弹出框"Hello"每当我按下按钮,我做错了什么?
你必须在加载HTML主体后调用你的testFunction
,以便它实际创建绑定。
也就是说,在文件的末尾,您可以这样做:
...
<script>
testFunction()
</script>
</body>
...
如果你在head
脚本中运行绑定代码,button
元素将不存在 —这就是为什么这个必须放在最后。
JavaScript库(如jQuery)通过提供ready
钩子使这更加优雅,在那里,一旦页面完全加载,就可以调用代码,而不必诉诸于页面底部的代码。
以script
结尾的完整示例(令人困惑的是,堆栈片段不会按照它们在片段中的实际顺序向您显示它;尽管看起来不像,但脚本在这里结束):
// Scoping function to avoid creating unnecessary globals
(function() {
// The click handler
function Hello() {
alert("Hello");
}
// Hooking it up -- you *can* do it like you did:
//document.getElementById("test").onclick = Hello;
// ...but the modern way is to use addEventListener,
// which allows for more than one handler:
document.getElementById("test").addEventListener(
"click", Hello, false
);
})();
<button type="button" id="test">Click me</button>
window.onload=testFunction;
function testFunction(){
document.getElementById("test").onclick = Hello;
}
function Hello(){
alert("Hello");
}
始终运行testFunction
中的行。如图所示:https://jsfiddle.net/arugco4b/
相关文章:
- onclick函数需要双击,因为类分配延迟
- Javascript onclick函数会立即调用(而不是在单击时调用)
- jquery Onclick函数带有导致双击的回调排序函数
- 使用element简化onclick函数
- 在React中,为什么我必须绑定onClick函数而不是调用它
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 在onclick函数中传递多个参数
- 如何将onclick函数更改为具有多个函数
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- 指定一个具有静态值的onclick函数
- Onclick函数更改为所有更改元素的相同函数
- 将php变量传递给onclick函数
- 请帮我完成js中按钮的onclick函数
- .hasClass 在 onclick 函数中不起作用,但删除和添加类函数可以
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- 使用“;这个“;在onclick函数中
- 如何在按Enter键后调用onclick函数
- jQuery onclick 函数:未定义不是一个函数
- 如何在 OnClick 函数中传递字符串参数
- OnClick函数仅在第二次单击时起作用