JavaScript三种绑定事件的方式及其用法区别(一个很好的面试题目)

【微信小程序入门到精通】— 事件绑定的详细解读_微信小程序绑定点击事件 大家每天都要开开心心的喔,让我们一起快乐的学习吧!网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!尝辄止,不再深入研究,那么很难做到真正的技术提升。**需要这份系统化资料的朋友,可以戳这里获取。 阅读详情

 转自:https://www.cnblogs.com/mylove103104/p/4667211.html

JavaScript三种绑定事件的方式:

  1. <div id="btn" onclick="clickone()"></div> //直接在DOM里绑定事件

    <script>

     function clickone(){ alert("hello"); }

    </script>

  2. <div id="btn"></div>

    <script>

     document.getElementById("btn").onclick = function(){ alert("hello"); } //脚本里面绑定

    </script>

  3. <div id="btn"></div>

    <script>

     document.getElementById("btn").addeventlistener("click",clickone,false); //通过侦听事件处理相应的函数

     function clickone(){ alert("hello"); }

    </script>

那么问题来了,1 和 2 的方式是我们经常用到的,那么既然已经有两种绑定事件的方法为什么还要有第三种呢?答案是这样的:

用 "addeventlistener" 可以绑定多次同一个事件,且都会执行,而在DOM结构如果绑定两个 "onclick" 事件,只会执行第一个;在脚本通过匿名函数的方式绑定的只会执行最后一个事件。

  1. <div id="btn" onclick="clickone()" onclick="clicktwo()"></div> 

    <script>

     function clickone(){ alert("hello"); } //执行这个

     function clicktwo(){ alert("world!"); }

    </script>

  2. <div id="btn"></div>

    <script>

     document.getElementById("btn").onclick = function(){ alert("hello"); }

     document.getElementById("btn").onclick = function(){ alert("world"); } //执行这个

    </script>

  3. <div id="btn"></div>

    <script>

     document.getElementById("btn").addeventlistener("click",clickone,false);

     function clickone(){ alert("hello"); } //先执行

     document.getElementById("btn").addeventlistener("click",clicktwo,false);

     function clicktwo(){ alert("world"); } //后执行

    </script>

以上;可根据场景灵活选择。

值得仔细推敲。

西红柿成熟度检测数据集总结 成熟度类别标注数量semiripe(半成熟)10275rotten(腐烂)13470fullyripe(完全成熟)35031unripe(未成熟)26212。 阅读详情

相关推荐

关于Arduino中的常用函数

一、I/O函数 二、时间函数 三、数学函数 abs 返回其参数的无符号值 【abs(12)返回12,abs(-12)也返回12】 constrain 限制一个数字以阻止它超出范围。第一个参数是被限制的数字,第二个参数是范围区间的开始,第三个参数是允许的数字范围区间的结尾。 【constrain(8,1,10)返回8,constrain(11,1,10)返回10,constrain(0,1,10)返回1】 map 将一个范围内的数字映射到另一个范围。第一个参数是要映射到数字,第二个和第三个参数是from范围(

TREE的博客 7323

JS中事件、事件绑定、事件对象、事件冒泡、事件委派、事件传播、常用事件等

一、事件 1、事件 用户与浏览器特定的交互瞬间。 二、事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称。 在JavaScript中 1、三种事件绑定 a、在DOM元素中直接绑定; <button onclick="open()">按钮</button> <script> function open(){ alert(1);

王春燕的博客 2157

从时序精度到视觉盛宴:PY32F030驱动WS2812的工程艺术与避坑指南

本文深入探讨了基于PY32F030微控制器驱动WS2812智能LED的完整解决方案。通过精确的时序控制、硬件PWM结合DMA传输技术,实现了稳定可靠的驱动效果,并提供了电源管理、信号完整性和常见问题排查等实用避坑指南,帮助开发者轻松应对严格的纳秒级时序挑战。

wind6的博客 121

Js 三种绑定事件方式 及 区别

三种事件绑定方式 DOM里直接绑定事件 <button id="btn" onclick="submit()">提交</button> <script> function submit() { console.log('DOM click......'); }; </script> js代码里获取DOM元素进行事件绑定 <button id="btn">提交</button> <script&gt

Superman_peng的博客 1029

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

富芮坤fr8008gp 240X280 lvgl项目启动

fr8008gp_240X280_lvgl项目启动

cheng___yi的博客 1758

3种事件绑定的异同(js的问题)

• 广义javascript ECMAScript + DOM + BOM DOM0 DOM1 DOM2。• 狭义javascript ECMAScript ES6 ES5 ES3。事件绑定:相当于存储了函数地址,再绑定一个事件,相当于变量指向了另一个函数地址。事件监听:相当于订阅发布者,改变了数据,触发了事件,订阅这个事件的函数被执行。事件监听的优点:可以绑定多个事件,常规的事件绑定只执行最后绑定的事件。addEventListener函数。

dxn16638400024的博客 475

Python操作WPS文档

在Python中,我们可以使用第三方库来操作WPS文档,实现自动化的文档处理。本文将介绍如何使用Python来打开、读取、修改和保存WPS文档的内容。库,我们可以打开、读取、修改和保存WPS文档的内容。你可以根据自己的需求进一步扩展和优化这些代码,实现更复杂的文档处理功能。安装完成后,我们就可以开始使用它来操作WPS文档了。方法将修改后的文档保存到指定的路径。方法将修改后的文档保存到指定的路径。在上面的代码中,我们通过修改段落的。属性,可以改变段落的文本内容。完成对文档的修改后,我们可以使用。

2301_79366177的博客 5617

JS绑定事件的三种方法(简单易懂)

相信大家都了解过事件,但如何给元素绑定事件,如何使用呢?让我为大家介绍三种绑定事件的方法吧!以下都是用点击事件(click)来做示范。

m0_74577714的博客 4288

【机器学习系列】一文搞懂 零知识机器学习(zkML)

位串行乘法器:实现了Booth编码优化,将乘法分解为移位-加法序列,减少部分积数量50%:模拟脉动阵列的2D网格计算,支持分块(tiling)策略优化内存层次卷积映射:提供直接卷积(行缓冲+滑动窗口)和im2col+GEMM两种硬件映射策略。

VectorShift的博客 157

【YoloV12改进策略】基于流形约束超连接(mHC)增强YoloV12全局特征提取能力_独家复现_梁文峰署名论文

论文标题:流形约束超连接 (Manifold-Constrained Hyper-Connections, mHC)核心问题:针对超连接 (Hyper-Connections, HC) 扩展残差流宽度时破坏恒等映射、引发训练不稳定性和高内存开销的问题,提出一种约束性框架。目标:恢复残差连接的稳定性与可扩展性,同时保持HC的性能增益。基准模型:基于DeepSeek-V3的MoE架构,进行了3B、9B、27B模型的实验验证。论文图示mHC 是一个通用的HC扩展框架。

m0_47867638的博客 1356

js 事件绑定的几种方式以及它们的区别

3种绑定方式1:DOM元素中直接绑定2:在JS代码中绑定3:绑定事件监听函数不同点:1:用 "addeventlistener" 可以绑定多次同一个事件,且都会执行,而在DOM结构如果绑定两个 "onclick" 事件,只会执行第一个;在脚本通过匿名函数的方式绑定的只会执行最后一个事件。2:addEventListener()是标准的绑定事件监听函数的方法,是W3C所支持的,Chrome、Fir...

weixin_34237596的博客 897

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

js中事件委托和事件绑定之间的区别

js中事件委托和事件绑定之间的区别

商务合作欢迎私信我 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【JavaScript】事件操作及其本质

注册事件、删除事件、DOM事件流

ztK63LrD的博客 854

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

原生JS 面试题 (基础)(概率大)

2022 最新 前端面试题 持续更新中

m0_64191440的博客 8282

前端面试-JS JavaScript事件绑定,事件捕获,事件冒泡,事件委托

** 事件绑定,事件捕获、冒泡,事件委托 ** ** 1. 事件绑定** 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。 所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称。 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定(注册行内事件); 在JavaScript代码中绑定; 绑定事件监听函数 1.1 在DOM中直接绑定事件 我们可以在DOM元素上绑定onclick、onmouseover、onmouseout

qq_33235680的博客 350

call、apply 以及 bind 的区别和用法-详解

相信很多同学在面试中遇到这样的问题,今天我们就彻底搞懂JavaScript中的call、apply、 bind的用法、实现以及三者之间的区别,废话不多说,直接开撸!

富朝阳的博客 2351

JavaScript面试题-绑定事件的方式?如何删除事件?

事件绑定 通过 .on 的方式绑定事件,一种事件只能绑定一次,绑定多个相同事件,后面的事件会覆盖前面的事件。 通过 addeventListener() 的方式绑定事件,该方式可以给一个元素绑定多个相同事件,该方法 IE8 不支持。 target.addEventListener(type, listener[, options]); target 目标对象;type 表示监听事件类型的字符串;...

weixin_44486539的博客 237

vue核心面试题:vue中的事件绑定原理

一、事件绑定有几种? 1.原生的事件绑定,原生 dom 事件的绑定,采用的是 addEventListener 实现。 2.组件的事件绑定,组件绑定事件采用的是 $on 方法 。 let compiler = require('vue-template-compiler'); // vue loader中的包 let r1 = compiler.compile('<div @click="fn()"></div>'); // 给普通标签绑定click事件 // 给组件绑定一个

王三六博客 5773

JavaScript面试题-事件绑定和普通事件有什么区别?

事件绑定和普通事件有什么区别? 普通事件 通过 on 来添加事件的方式 <button id="btn">按钮</button> document.getElementById('btn').onclick=function(){}; document.getElementById('btn').onclick=function(){}; 如果说给同一个元素绑定...

weixin_44486539的博客 393

js函数绑定方式(即this指向)

函数绑定方式(即this指向) 函数绑定和this指向在js中非常的重要,不同的函数绑定方式会影响函数中this的指向。函数主要的绑定方式有以下四种: new绑定 默认绑定 隐式绑定 显式绑定 思考:函数声明有几种方式? 下面通过具体的面试题目来做一个代码逻辑分析: new绑定 知识点: 箭头函数 setTimeout 就近原则查找 捕获上下文变量 this和变量的指向是不一样的 构造函数...

weixin_34366546的博客 1910

Javascript相关面试题目

1,javascript的typeof返回哪些数据类型  object、number、 function、 boolean、 underfind 2,例举3种强制类型转换和2种隐式类型转换?   强制(parseInt,parseFloat,number) 隐式(== – ===) 3,事件绑定和普通事件有什么区别  事件绑定就是针对dom元素的事件,绑定在dom元素上 普

qq_34184143的博客 875

除了 call,JS 还有哪些强大的函数绑定方式?

在我深入研究setTimeout时,遇到了一个常见的挑战:如何确保在异步回调中正确地绑定this的指向。最初,我总是依赖于call方法来解决这个问题,因为它简单直接,能够立即执行函数并显式地设置this。然而,随着项目的复杂度逐渐增加,我发现仅仅依靠call并不足以应对所有情况。这让我开始思考:JavaScript 中是否还有其他方法可以实现类似的this绑定?它们与call又有着怎样的区别和各自的优势呢?apply:与call类似,但它接受参数数组,非常适合处理未知数量或动态数量的参数。call。

2401_87546826的博客 768

JS 基础面试题 2019年最新前端面试题目

1.js基础 1.eval是做什么的?  它的功能是把对应的字符串解析成JS代码并运行;  应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。  由JSON字符串转换为JSON对象的时候可以用eval,var obj =eval('('+ str +')'); 2.什么是window对象? 什么是document对象?  window对象是指浏览器打开的窗...

weixin_44374408的博客 4863

深入解析 JavaScript 中的 call、apply、bind:用法、差异与面试题

JavaScript 中的 call、apply 和 bind 都是用于改变函数执行时的 this 指向。call 和 apply 会立即执行函数,区别在于传参方式(逐个 vs 数组);bind 则返回绑定了 this 的新函数,可延迟执行。常见应用场景包括:函数柯里化(bind)、求数组最大值(apply)以及类数组转数组(Array.prototype.slice.call)。面试常考手写 bind 实现和三者区别,需注意 call/apply 的立即执行特性与 bind 的延迟绑定差异。

前端圈边缘选手,擅长把 UI 稿 “翻译” 成代码,也擅长在 console.log 里写 “求救信号”。日常状态:要么在调像素级对齐,要么在查 “为什么这个样式只在我电脑上生效”。博客不搞高深理论,只唠实在干货~ 1557

js面试题目整理

for in 和 for of 的区别 for in 是 es5 的标准,用来遍历的是 key,仅适用于数组。 for of 是 es6 的标准,用力遍历可迭代对象的 value。 js 的数据类型 null、undefined、boolean、object、number、string、BigInt、Symbol。 typeof 返回值 用于判断数据类型,返回值主要有 string、boolean、number、function、object、undefined instanceof instanceof

zhutou1280的博客 1539
上一篇: leaflet 地图弹框popup打开显示之前的事件
下一篇: vue 控制某个元素的显示与隐藏之v-if属性
acoolgiser
博客等级 码龄11年 179粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值