一个dom,点击事件触发两个事件是同步还是异步

手动触发点击事件和JavaScript函数式触发点击事件的区别 手动触发点击事件和函数式触发点击事件的区别 阅读详情

问题产生原因:
用户充值接口,一个选择支付方式的dom绑定了一个插入订单的 ajax。
为了监测用户点了哪个支付方式,现在要把选择哪个支付方式记录下来。

当然可以在这个ajax请求的方法里面加入一个插入监测数据。但是考虑到插入订单的时候要与很多支付平台对接,速度会本来比较慢。万一出现意外情况导致订单插入失败,会比较麻烦。
然后研究了下。一个dom绑定两个事件,执行顺序的问题。

$('#dom').onclick(function1 (){
  $.ajax({
     ...
  });
);

$('#dom').onclick(function2 (){
  $.ajax({
     ...
  });
);

看到的别东西:

JS事件绑定的几种方式

 1. <div id="outestA" onclick="return buttonHandler(this);"></div>  
 2. <div id="outestA" onclick="var id = this.id;alert(id);return false;"></div> 
 3. var dom = document.getElementById("outestA");  
    dom.onclick = function(){alert("1=" + this.id);};  
    dom.onclick = function(){alert("2=" + this.id);}; 后面的会覆盖前面的
4.  addEventListener(type, listener, useCapture);
// type:事件类型,不含"on",比如"click"、"mouseover"、"keydown";  
// 而attachEvent的事件名称,含含"on",比如"onclick"、"onmouseover"、"onkeydown";  (IE特有)
// listener:事件处理函数  
// useCapture是事件冒泡,还是事件捕获,默认false,代表事件冒泡类型      ps:翻译是否使用捕获  
//同一个事件函数,并且事件类型都为冒泡或者事件捕获类型,那只能绑定一次,

JS事件冒泡和事件捕获

userCapture 为false
事件冒泡执行顺序:   从内部到外部Document。

userCapture 为true
事件捕获执行顺序 : 从Document向内部执行

Dom事件流:包含userCapture ture 和 false
捕获阶段的处理函数最先执行,其次是目标阶段的处理函数,最后是冒泡阶段的处理函数。
目标阶段的处理函数,先注册的先执行,后注册的后执行。

从这里看,执行肯定是有先后顺序的。那如果其中的一个ajax有问题,会不会影响到另一个的运行?

<span class="test">测试Ajax执行顺序</span>>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$('.test').click(function(){
    $.ajax({
        url:'http://test.iok.la/sdk/',
         type:'post',

  dataType:"jsonp",
        success:function(res){
            console.log(res);
        },

    });
});
$('.test').click(function(){
    $.ajax({
        url:'http://test.iok.la/sdk2',
         type:'post',
           dataType:"jsonp",
        success:function(res){
            console.log(res);
        },

    });
});

</script>
  • 测试结果,第一个ajax先运行。
  • 第一个不会影响第二个的运行(链接错误或者 在后端sleep(20)都不影响)。

是异步的!其实想一想也是,ajax 本来一个特性就是异步的。。。。。。。正常来说的话也应该是这样子的。。。。

小收获

发现了一篇文章 主体的内容将的是 JS操作DOM到底是同步还是异步的
https://segmentfault.com/q/1010000005630545?_ea=903562

额…………看了好久,还是没怎么懂他们要表达的内容。。。。暂时先放一放~~以后研究

//显示加载动画

js 延迟加载,setTimeout

utils.loading();  
//让JS线程等待100毫秒,等待会让UI渲染进程实现,  
//如果发现setTimeout还要隔较长时间才到期,为了避免时间上的浪费,浏览器选择马上切换到UI线程。   
setTimeout(function(){  
    //长时间的js计算,同步请求等耗时操作  
    for(var i=0;i<100;i++){  
        console.log(11);  
    }  
    //关闭加载动画  
    utils.closeload();  
},1000);  
js之异步操作(事件循环机制及异步处理方式含promise) 最近学习es6 看到promise和generater,最后发现他们的共同点都是通过维护状态来解决异步的一种方式, 由于js单线程运行的特点,所以前端编程一直离不开异步这个概念,先把这个知识点进行梳理。 先看同步问题,同步很简单就是程序排队执行,但同步会存在阻塞问题 同步阻塞: // 这是一个阻塞式函数, 将一个文件复制到另一个文件上 function copyBigFile(afile,... 阅读详情

相关推荐

记一次wireshark抓取QQ好友IP和火绒抓取微信IP

事情是这样的,,上个周,手机离奇的被盗,但没有关机,为了找回手机,粗学了一手QQ抓ip的手段。 这里我就直接做个演示,解析关键的点。 三种思路i. wireshark 抓取手机在线IPii 火绒抓取 微信在线接听IPiii 火绒抓取 微信在线不接听IP i. wireshark 抓取手机在线IP wireshark抓好友QQ的ip要求和对方打语音的时候要手机在线。 这里说一下,打语音和视频是直接能和对方建立连接,如果发文件,是直接发给腾讯的,抓不到包。 1.打开wireshark,通过电脑Tim给对方打语音

qq_29437513的博客 1万+

Vue源码学习之异步更新原理

 首先我们了解到Vue的Dom更新是异步的,当我们更新数据后,立即获取Dom的内容,此时Dom的内容还是旧的内容,那么我们可以通过$nextTick在回调函数中去获取最新的Dom内容,那么这个时候就有所考虑了,为什么就有所考虑了,为什么我们不在Vue中所操作的Dom是同步的,在Vue中确是异步的呢?实际跟Vue的渲染机制有关,在Vue中当修改数据后,此时渲染是异步的,所以Dom的更新也是为异步的。 Vue中Dom的更新不仅仅是异步的而且还是批量的,这样做的好处是能够最大程度的优化性能,对于相同Dom的多次修

认定的总要想办法去完成。 1751

NDIAurora 6D、5D传感器裸线焊接与烧录 6D传感器型号:10001742;5D传感器型号:610157

NDI Aurora 6D、5D传感器裸线焊接与烧录

yanghong2000719的博客 1201

DOM事件及代码执行中的同步和异步

了解DOM中的事件绑定和代码执行中的同步和异步,认识回调函数并了解他们之间的关系。

程展威的博客 1628

拼多多/Temu反爬参数逆向踩坑记:从浏览器调试到补环境完整复盘

本文详细解析了拼多多/Temu反爬参数`anti_content`的逆向工程实战,从浏览器调试到补环境完整复盘。通过JavaScript逆向技术,拆解关键函数定位、反混淆算法还原及补环境技术应用,帮助开发者突破电商平台复杂反爬系统,提升数据采集效率。

weixin_33978722的博客 912

EDA工具安装第一步:Synopsys Installer的配置与图形化界面使用详解

本文详细解析了EDA工具安装的关键第一步——Synopsys Installer的配置与使用。文章阐述了其作为统一部署管理器和依赖协调者的核心作用,并分步详解了如何通过图形化界面高效安装EDA工具,同时介绍了命令行批处理等进阶技巧,旨在帮助工程师快速搭建稳定的芯片设计环境。

zeta9的博客 340

【每日知识】Ajax组成部分了解

在人生的道路上,让我们时刻自我激励着吧!永远!永远!

qq_46580087的博客 1334

Python爬虫教程:抓取社交媒体内容(以Facebook和Instagram为例)

为什么抓取社交媒体内容?品牌分析与监测:通过抓取品牌、产品或服务相关的社交媒体数据,可以获得公众对其的评价,识别市场趋势,制定营销策略。情感分析:分析用户在社交平台上的情感倾向,如对某事件、产品、服务的正面或负面情绪。舆情监控:通过抓取大量社交媒体内容,监测公众对热点事件的反应,发现潜在的社会问题。用户行为分析社交媒体的数据类型:帖子和内容:包括用户发布的文本、图片、视频等。用户互动用户信息:包括用户名、粉丝数、关注数等社交信息。社交媒体的反爬虫机制:API限制。

2201_76125261的博客 1338

DOM 加载 和 Javascript 的加载与执行顺序

DOM 简介 DOM 是 Document Object Model(文档对象模型)的缩写。HTML 的构成就是DOM,网页就是一个文档,是一个有结构的文档。HTML DOM 定义了访问和操作 HTML 文档的标准方法。DOM 将 HTML 文档表达为树结构。HTML DOM 树如下: 每个元素都可与看做一个对象,每个对象都叫做一个节点(node) 浏览器的渲染步骤: 1、解析HTML...

Armstrong的博客 4193

人工智能训练师三级考试大纲深度解读|理论+实操分值分布+六大模块占比

三级人工智能训练师考试分为理论和实操两大模块(各100分,合格线60分)。理论考试包含AI基础(30%)、数据标注(25%)、模型训练(20%)、测试(15%)和系统运维(10%),题型为客观题;实操考核侧重数据标注(40%)、模型测试(35%)和系统运维(25%),采用现场操作形式。复习应优先关注AI基础和数据标注等高分值模块,实操需重点掌握标准流程和结果准确性(占评分70%)。考试要求两模块均达标,理论侧重概念理解,实操强调规范执行与文档完整。

白话机器学习 1093

弹窗提示报错: F:\c\CFX5\bin\Debug\net9.0-windows10.0.26100.0\CFX5.dll 面向无法动态枚举工具箱项目的平台...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 947

同步任务与异步任务

同步任务与异步任务异步任务:DOM事件,setTimeout,setInterval,Ajax请求同步任务:除了异步任务的那几个,其他都是同步任务 EvenLoop:事件循环 我们知道,在js运行代码是,它是单线程的, 下面我们可以把事件循环的过程过述一下: 1,执行栈:用于执行任务代码的的,也就是js的主线程,它会先执行同步任务,若发现有异步代码,就会把异步代码放到浏览器宿主环境中执行,继续执行下面的同步代码 2,浏览器宿主:用于执行异步代码,异步任务执行完成后,会把异步任务的回调函数放入到任务队列中,

AI529218的博客 334

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

本文介绍了如何将Langfuse集成到不同类型的AI应用中,包括原生OpenAI、LangChain和LangGraph应用。主要内容包括: 两种集成模式:手动追踪(精确控制)和自动追踪(通过回调机制) 三种应用场景的集成方案: 原生OpenAI应用:使用langfuse.trace()手动记录对话流程、LLM调用和工具执行 LangChain应用:通过LangfuseCallbackHandler自动追踪Agent执行过程 LangGraph应用:与LangChain相同的自动追踪方式,可可视化节点和状态

yonggeit的博客 3302

一次点击事件,触发两次异步请求

一次点击事件,触发两次异步请求,导致数据库存入了相同的两条记录     阻止事件冒泡 :  event.preventDefault(); 无效     由于是动态生成的  点击事件运用了jQuery里面的on()方法,绑定在body上面,结果在程序里面运行了两次。参考了博客利用on和off方法编写高效的js代码知道了很多在dom对象删除以后,其声明的绑定在window上的事件还一直

weixin_39982167的博客 2235

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

同步 异步和事件

同步和异步 事件 浏览器提供了同步和异步机制 JS是单线程的,提供了两个队列,一个是主队列(放同步代码),一个是异步队列队列池。 同步 所有的代码按顺序执行,每一部分执行完后才能执行下面的代码。 异步 这块代码执行后,可以去做其他事情,等这块代码执行完后,再回来处理这里的事项。 异步性能会比较高 回调函数 ajax 定时器 时间 ...

a404007652的博客 879

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

DOM 触发事件 JS的两种写法

当前端HTML的DOM元素需要触发事件,而此时的JS是外部引入的文件时.JS内的两种写法

Xia13225498444的博客 2288

深度学习工具包 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")

load/DOMContentLoaded事件、异步/延迟Js 与DOM解析

load/domContentLoaded事件、异步/延迟Js 与DOM解析 一、DOMContentLoaded 与 load事件 关于load和DOMContentLoaded事件,mdn对于它们是这样描述的: DOMContentLoaded mdn文档地址:https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoade...

EmotionComputer 942

crawlergo DOM事件完整收集与触发:揭秘动态网页爬取核心技术

想要高效爬取现代动态网页?crawlergo作为一款强大的浏览器爬虫工具,通过完整的DOM事件收集与智能触发机制,彻底解决了传统爬虫无法处理JavaScript动态内容的难题。本文将深入解析crawlergo如何实现对DOM事件的全面监控与自动化触发,帮助你掌握动态网页爬取的核心技术。 ## 🎯 为什么需要DOM事件收集与触发? 现代Web应用大量使用JavaScript动态加载内容,传统的

gitblog_00149的博客 836

同步、异步,宏、微任务,事件循环

宏任务:宏任务是指某些特定的异步任务(在主线程之外),它们会被放入一个任务队列中,任务队列中的任务会在每次事件循环时执行一个微任务:微任务是在当前事件循环的末尾执行的任务,但会在任何新的宏任务之前执行。宏任务和微任务的区别在于宏任务在任务队列中排队,每次只执行一个任务,而微任务在任务队列之后执行,每次执行所有微任务。宏任务:setInterval、setTimeout、setImmediate、Ajax、DOM事件、异步函数、I/O、UI渲染等。微任务:process.nextTick。

qq_44307861的博客 1341

同步任务和异步任务详解

同步任务和异步任务 同步和异步操作的区别就是是否阻碍后续代码的执行。 同步任务是那些没有被引擎挂起、在主线程上排队执行的任务。只有前一个任务执行完毕,才能执行后一个任务。 异步任务是那些被引擎放在一边,不进入主线程、而进入任务队列的任务。只有引擎认为某个异步任务可以执行了(比如 Ajax 操作从服务器得到了结果),该任务(采用回调函数的形式)才会进入主线程执行。排在异步任务后面的代码,不用等待异步任务结束会马上运行,也就是说,异步任务不具有“堵塞”效应。 在setTimeout的执行形式上来看,setTim

qq_15859173的博客 5278

JQuery给动态生成的DOM元素绑定点击事件

最近做项目的时候,使用ajax调用后台数据来动态生成页面内容。然后在给那些内容绑定一个点击事件的时候,发现点击竟然无效了。原因是:ajax有个请求时间,无论是同步还是异步,JQuery进行的绑定都会在页面加载完后立刻进行,而不是等待ajax请求完。也就是说,绑定的元素绑空了。那这个问题怎么解决呢。方法如下: 在动态生成的时候绑定一个函数,并把对象传进去,如: strhtml = str

qj30212的博客 5788

事件是同步还是异步(总结)

事件是同步还是异步,react中的事件绑定this问题,vue的事件绑定this问题 这四个按钮依次点击输出的是 dom0级绑定依赖dom对象上的onclick属性 ① 要是按照的写法会将红色部分作为参数传入dom对象上的onclick属性里面(此属性是个函数) ② 第二个按钮其test函数和上面。 ③ 第三种方式: btn是拿到的这个按钮,也就是dom对象。这种写法是往对象身上添加一个方法,那这里一样的道理用自己写的onclick函数替换了dom对象上原本的那个属性 ④dom2级

我有三种目的:坚持、思考、太阳 1486

load/domContentLoaded事件、异步/延迟Js 与DOM解析

一、DOMContentLoaded 与 load事件 关于load和DOMContentLoaded事件,mdn对于它们是这样描述的: DOMContentLoaded mdn文档地址:https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoaded The DOMContentLoaded event is fi...

aiguanyi0149的博客 1233

【JavaScript】事件执行机制、同步与异步、事件循环(event loop)

【JavaScript】事件执行机制、同步与异步、事件循环(event loop)

weixin_43790653的博客 1744

React中 setState 是同步的还是异步的?调和阶段 setState 干了什么?

setState 是异步的还是同步的

m0_60676278的博客 1327

this.setState同步还是异步?

this.setState()不保证是同步的,所以在if条件中调用setState修改后的值,是做不到更新。利用this.setState()的第二个参数:回调函数,在等第一个参数内的state更新后再调用。param2: 回调函数 --- 等待state更新后,执行的函数。param1: 对象或函数 --- 改变state的值。发现if语句里拿不到type的值。

outstanding木槿 843
上一篇: mysql查询 EXPLAIN 简单解释
下一篇: PHPSTROM 添加外部库和引入其他文件夹
o王o
博客等级 码龄13年 32粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值