


Small test of event binding onclick && addEventListener_javascript skills
There should be corresponding functions in the development tools, so I tested it:
Premise: It is just a simple small test, and addEventListener is a standard binding function, which is not compatible with this in IE (the corresponding IE is attachEvent), so this time For testing, abandon IE first and use Firefox 5.0.1, Chrome 14.0, Opera 11.50
Test page:
页面效果如下截图:
测试代码中采用了三种最常见的事件绑定方法
FIREFOX:
1,Firefox 的 Firebug 中选中 test1 元素:
右侧 DOM 标签中选择显示所有属性:
在其中找到了 attributes 数组,如下:
这是因为 test1 元素的两个事件句柄直接写到了元素中,再往下的列表中找不到更多相关的信息,此种绑定模式下只能在 firebug 的 DOM 标签的 attributes 中找到事件句柄。
2,选中 test2 元素:
右侧 DOM 标签:
test2 采用在 javascript 中绑定事件句柄的方式,被作为“用户自定义属性”显示在了 DOM 标签中,右击鼠标可以查看相关信息:
3,选中 test3 元素:
这次在 DOM 标签中没有找到任何相关此元素绑定事件的信息。。。
总而言之,firebug 中在标准绑定事件函数下(addEventListener),并不好检测到某个元素已绑定的事件函数,(不要说尝试打印一下那个元素的 onclick 属性,addEventListener 绑定和 onclick 绑定毫不相干,此种情况下你会得到 nudefined);如果是在前两种事件绑定下,可以得到一些简单信息。
-----
OPERA:
1,在 Opera 的 Dragonfly 中选中 test1 :
在右方的属性列表中可以找到相关的信息:
点击加号同样可以查看绑定的函数信息:
想查看某个函数体的话,有一种简单的方法,在控制台中直接输入:
直接就打印出函数体,更加的方便!
2,选择 test2 和 test1 几乎相同,就不在赘述了;
3,选择 test3:
Nothing can be found in the attribute tag on the right. The values of onclick and onmouseover are both null.
In short, Opera Dragonfly and Firefox Firebug perform similarly, and it is not very clear which events are bound to an element under the standard binding function.
-----
CHROME:
It’s much clearer in Chrome:
1, select test1 (or test2, these two are similar) in the debugging tool
Look at the information bit on the right:
Event Listeners in Chrome is a good little tool that directly lists the listening functions that have been bound to the currently selected element. Click the small black triangle to view the information of the bound functions:
There are two items in click. The first item is div#test1, which is the onclick function information we bound; the second item, document, does not need to be seen (Chrome’s own processing);
isAttribute: true: Indicates that this onclick function handle is treated as an element attribute (because we use onclick = function(){…}, whether it is test1 or test2);
lineNumber: 18: indicates the location of the bound function;
useCapture: false : Indicates that event capture is not used; other semantics are very strong, so I won’t mention them;
Similarly, in the first HTMLDivElement list of Properties, both test1 and test2 can see:
2, select test3:
In Properties both onclick and onmouseover will become null, but Event Listeners will still be:
But notice the div#test3:
isAttribute becomes false because we do not use the onclick attribute, but use addEventListener.
Remember these first! The writing is a bit messy~

Python and JavaScript have their own advantages and disadvantages in terms of community, libraries and resources. 1) The Python community is friendly and suitable for beginners, but the front-end development resources are not as rich as JavaScript. 2) Python is powerful in data science and machine learning libraries, while JavaScript is better in front-end development libraries and frameworks. 3) Both have rich learning resources, but Python is suitable for starting with official documents, while JavaScript is better with MDNWebDocs. The choice should be based on project needs and personal interests.

The shift from C/C to JavaScript requires adapting to dynamic typing, garbage collection and asynchronous programming. 1) C/C is a statically typed language that requires manual memory management, while JavaScript is dynamically typed and garbage collection is automatically processed. 2) C/C needs to be compiled into machine code, while JavaScript is an interpreted language. 3) JavaScript introduces concepts such as closures, prototype chains and Promise, which enhances flexibility and asynchronous programming capabilities.

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

JavaScript's applications in the real world include server-side programming, mobile application development and Internet of Things control: 1. Server-side programming is realized through Node.js, suitable for high concurrent request processing. 2. Mobile application development is carried out through ReactNative and supports cross-platform deployment. 3. Used for IoT device control through Johnny-Five library, suitable for hardware interaction.

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base

JavaScript is the core language of modern web development and is widely used for its diversity and flexibility. 1) Front-end development: build dynamic web pages and single-page applications through DOM operations and modern frameworks (such as React, Vue.js, Angular). 2) Server-side development: Node.js uses a non-blocking I/O model to handle high concurrency and real-time applications. 3) Mobile and desktop application development: cross-platform development is realized through ReactNative and Electron to improve development efficiency.

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version
Recommended: Win version, supports code prompts!

WebStorm Mac version
Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Zend Studio 13.0.1
Powerful PHP integrated development environment