问题解决:在js中绑定onclick事件为什么不加括号,在html代码中必须要加?(转载)
2024-10-19 12:33:23
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<button id="btn">按钮</button>
</div>
<script>
var btn = document.getElementById("btn");
btn.onclick = demo();
//btn.onclick = demo; /*加上括号是执行的意思,添加事件的回调函数应该就是给相应的事件属性赋值,
而很明显需要把一个函数赋值给这个事件属性,而不是函数的调用结果。
所以在js中的绑定是直接赋值。而在标签内的事件属性的值是由引号包裹的,
代表的是当点击该元素时,执行引号内的代码,直接把引号内的代码拿出来跑,
如果你不加括号,那就不会调用那个函数。*/ /*简单来说就是带括号的是执行一次函数,不带括号的函数就是一个函数对象*/
/*那下面这种意思就明显了,下面的这一句语句是将一个函数对象赋值给了btn.onclick
*/ // btn.onclick = function(){alert("DOM0级事件处理111");} function demo(){
alert("111");
} </script>
</body>
</html>
搬运转载自回答:https://www.imooc.com/wenda/detail/323633
(本文对读者有帮助的话请移步支持原作者)
最新文章
- navigation和tabbar上的文字.图片 自定义
- LeetCode Verify Preorder Sequence in Binary Search Tree
- laravel中间件-----------middleware
- mmap直接控制底层【转】
- 可以支持jQuery1.10.1 的 fancybox 1.3.4, 並現在type為Ajax時,也可以定義窗口的大小。
- file_operations结构体解析 1
- datagridview的数据源的操作
- 关于Django模板渲染一个很重要的用途
- HDU 5810 Balls and Boxes
- C# GridView Edit &; Delete, 点击Delete的时候弹出确认框
- SVG的Transform使用
- 安装wdcp linux一键安装包云系统客户端教程
- AngularJS学习篇(十六)
- [转载] 详细讲解Hadoop中的简单数据库HBase
- [JS]手动实现一个横屏滚动公告js插件
- Unity加载AB资源
- iOS----------The app&#39;s Info.plist must contain an NSPhotoLibraryUsageDescription key
- Linux:Day6(上) egrep、条件测试
- 编写自己的dapper lambda扩展-使用篇
- Error: php71w-common conflicts with php-common-5.4.16-46.el7.x86_64