/article/details/89230040 ☯ 背景描述 今天在进行代码编写时,我需要根据ajax返回的数据动态生成一个表格,而针对于其中的input标签,要求设置失去焦点的blur事件...最开始编写的 js 代码如下: /** * 当sku库存量变化时,对应总库存进行更新 */ $(".input-sku-stock").blur(function ()...$(".input-goods_stock").val(input_goods_stock); }); 但是发现,静态的表格是可以正常实现的,而动态新生成的却无法触发blur事件...ி 附录 1.针对我的问题,求助度娘,发现了下面的一个帖子,可作参考 动态添加的blur事件失效 [问题点数:60分,结帖人lawrendc] 时间相当久远... 2.最接近解决需求的文章如下...,建议可自行测试 动态生成input绑定事件无效如:blur 意见:异步导致绑定事件失败,需使用全局绑定事件 3.w3school 文档 - onblur 事件 这就是官方文档
普通的jq点击事件是这样的 $(".aaa").click(function () { alert("测试"); }); 由于html代码是js动态生成的,所以需要用这种方式 $(document
最近在进行页面开发,在做页面特效的时候,需要给一个动态加载的按钮赋予一个事件 于是不假思索的 用$(obj).bind(); 来绑定事件 。...但是这样存在一个问题: bind确实能绑定事件,但是那是相对于固定的html标签来说 当页面内容属于动态加载的时候,bind事件就存在一个bug, 只能bind一次,当你第二次触发事件的时候就没用了...例如: 我给标签赋予一个click , 标签包括内容都是从后台数据读取然后动态加载的 。...当我使用bind来绑定click事件,这时, 第一次点击click能成功触发 但是第二次点击,click事件无效了......(){ //js数据代码 }); 这样就能实现对动态数据绑定事件,并永不失效
方式一: btn.onclick = function (){ console.log("123"); }; btn.oncl...
js通过事件代理的方式绑定跳转事件,我这里的逻辑是把click事件绑定在最外层container上面,如果e.target包含我已经写好的class,则执行跳转逻辑。...但是这种方式好像只能是在点击的元素的上面,也就是最内层的元素上面有相应的class才能跳转,在外层加同样的class不生效,说明是我对于事件代理的理解不够深刻,其实事件代理的作用就是为了把目标元素的事件绑定在外层做代理...(e) { console.log(e.currentTarget) //获得当前绑定监听事件的元素, container console.log(e.target)/...) } },false) document.getElementById("container").classList.add('jumpUrl');//写在后面也可以绑定成功...注意:内层元素,即点击的目标元素必须是点击时真正的目标元素,而不是外面一层; currentTarget绑定相应想要点击的class的时候必须是做代理的即做事件监听的元素。
事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称。...在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定; 在JavaScript代码中绑定; 绑定事件监听函数。...; } 使用事件监听绑定事件 绑定事件的另一种方法是用 addEventListener() 或 attachEvent() 来绑定事件监听函数。下面详细介绍,事件监听。...; } 事件监听的优点 1、可以绑定多个事件。...说明传统的事件绑定无法对动态添加的元素而动态的添加事件。
在Web开发中,有时候我们可能会把页面中的某些按钮绑定到键盘的输入事件中。以下代码能方便实现我们需要的功能。...js代码: document.onkeyup = function (event... default: break; } } 在Web开发中,有时候我们可能会把页面中的某些按钮绑定到键盘的输入事件中
在写js代码时,常常需要给某些对象绑定事件,但是前提是,给某对象绑定事件时,该对象必须已经渲染出来了,否则绑定事件肯定是无效的,但是在实际开发时,比如用到一些内部框架进行开发时,绑定事件在渲染之前就已经执行了...,且不方便修改,此时使用如下写法:保证绑定事件一定可以绑定到指定对象,不用考虑渲染先后: $document.on({},对象) 指的是将事件直接绑定在document上,每次document有点击动作...如上在绑定三个事件时,class为yifang的对象还没有渲染出来,就无法绑定成功,使用上面方法将事件直接绑定到document上面,就可以实现class为yifang绑定上如上三个事件了。
一、知识要点 可以重复绑定相同事件,避免事件被覆盖 二、源码参考 <!...btn1.onclick = function() { alert('绑定方式一~onclick')...} // 绑定方式二 if(btn2.attachEvent) { btn2.attachEvent...('onclick', function() { alert('绑定方式二~attachEvent'); })...else { btn2.addEventListener('click', function() { alert('绑定方式二
往期文章 【Node.JS】写入文件内容 【Node.JS】读取文件内容 目录 简介 绑定事件 on() addListener() once() 监听事件emit() 传参 删除事件 removeListener...() removeAllListeners() ---- 简介 node.js的事件是使用events模块,通过实例化它里面的EventEmitter类,来绑定和监听事件。...绑定事件 on() const eve = require("events"); //导入模块 var event = new eve.EventEmitter(); //进行实例化声明 event.on...('namea', function () { console.log("坚毅的小解同志"); }) 查看绑定的事件 const eve = require("events"); //导入模块...event.emit('namea', '小解'); once() once 只会绑定一次性的触发事件,触发一次后就会解除绑定。
JS动态加载数据绑定事件-委托delegate() 方法 ---- W3C规范定义 定义和用法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数...使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。...---- JavaScript动态加载的数据,同时给他加载绑定事件,我选用Jquwey中的 delegate() 方法 我的理解,delegate()方法属于异步式加载绑定,dom元素加载未完成之前,可以委托给...delegate() 方法来实现的绑定操作。...top-nav-left","click",function() { window.history.back(); }); }); ---- 第一个参数为 要点击的标签属性 第二个参数为 要绑定的事件
可对函数进行如下扩展 Function.prototype.bind = function(obj) { var _this = this; ...
(绑定事件)注册事件有两种方式:传统方式和方法监听注册方式1.1传统方式1.利用on开头的事件onclick2....该方法接收两个参数:●eventNameWithOn :事件类型字符串,比如onclick、onmouseover ,这里要带on●callback :事件处理函数,当目标触发事件时回调函数被调用2.删除事件...father.addEventListener('click', function () { alert('father') }, false); 注意:JS...// 当我们注册事件时,event 对象就会被系统自动创建,并依次传递给事件监听器(事件处理函数)。...e 就是个事件对象写到我们侦听函数的小括号里面当形参来看事件对象只有有了事件才会存在,它是系统给我们自动创建的,不需要我们传递参数.事件对象是我们事件的一系列相关数据的集合跟事件相关的比信息
>beijing 请选择 如果给"...bigType"的下拉框添加change事件来动态改变"smallType"下拉框的值的话,代码如下: jQuery("#bigType").change(function(){ //do something...}); 那么,通过js设置"bigType"某项选中后,如: jQuery("#bigType option[value="1"]").attr("selected","selected") //jQuery...("#bigType option:contains("xiamen")").attr("selected","selected") 该change事件不会自动触发,解决办法: 自定义change方法,...在下拉框中添加onchage事件并传参(当前选中的value值),自定义调用时间: <select id="bigType" onChange="getVariety(this.options[this.selectedIndex
原生 js 直接作为方法调用即可触发。...div.login-content > div.content-right > div > div > div.login-panel-input.login-submit-panel > button"); // 调用按钮事件进行点击...login_btn.click(); 可以看到效果图: jquery 通过 trigger() 方法触发点击事件。...div.content-right > div > div > div.login-panel-input.login-submit-panel > button").trigger("click") 使用前提是该 dom 元素必须绑定的事件才能出发...,他的祖先元素绑定的事件他触发不了,所以这里要把 Ancestors All 取消勾选一下。
总结一下:jQuery 事件绑定 和 JavaScript 原生事件绑定 及 区别 jQuery 事件绑定 jQuery 中提供了四种事件监听绑定方式,分别是 bind、live、delegate、on...该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。 注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。...; 8 9 $(".cnd").click(function(){ 10 console.log("3rd")} 11 ); 12 13 /* js...执行 js 的 cm2 点击事件,控制台打印的是: ?...原生的事件绑定,可以发现只执行了最后一个相同的绑定事件,后面绑定的事件处理函数覆盖了前面的事件处理函数。
selector 一个选择器,当绑定事件处理程序的匹配最初传递给。 ...: .on() 在选定的元素上绑定一个或多个事件处理函数。 ...click",function(event,person){ alert("Hello,"+person.name); }) //传递一个data数据给事件处理程序....trigger() 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。 ...用法: 解除绑定的所有段落都从委托的事件: $("p").undelegate() 解除绑定的所有段落的所有委托点击事件: $("p").undelegate
事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定(DOM2级模型)。现代事件绑定在传统绑定上提供了更强大更方便的功能。...一.传统事件绑定的问题 传统事件绑定有内联模型和脚本模型,内联模型我们不做讨论,基本很少去用。先来看一下脚本模型,脚本模型将一个函数赋值给一个事件处理函数。...; 问题一:一个事件处理函数触发两次事件 window.onload = function () {//第一组程序项目或第一个JS文件 alert('Lee'); }; window.onload = ...function () {//第二组程序项目或第二个JS文件 alert('Mr.Lee'); }; 当两组程序或两个JS文件同时执行的时候,后面一个会把前面一个完全覆盖掉。...PS:IE中的事件绑定函数attachEvent()和detachEvent()可能在实践中不去使用,有几个原因:1.IE9就将全面支持W3C中的事件绑定函数;2.IE的事件绑定函数无法传递this;3
写法 $('.father').on('click',',child',function(){}) $(document).on('click',',child',function(){}) 第二种 js...); list.appendChild(node); 第三种 定时器写法 var id = setInterval(function () { console.log('定时器循环事件绑定...') },1000); 但是有些特殊情况会有bug,对于动态添加的这些事件是需要解绑的,具体解绑方法请参考原文https://juejin.im/post/5a1a350d51882560e3565665...还有一篇介绍事件绑定、事件委托、事件监听的很好的文章,再此推荐一下http://blog.xieliqun.com/2016/08/12/event-delegate/
问题描述 首先先来复现一下代码,背景是这样的,需要监听一下scroll事件,但是监听函数需要当前组件的this环境,所以监听函数上需要bind(this), 但是这样操作后发现无法removeEventListener...addEventListener、removeEventListener与事件处理程序 首先先来了解一下这两个函数的使用。...addEventListener()和removeEventListener()是“DOM2级事件”中定义的两个方法,分别用于添加和删除事件处理程序。...所有的DOM节点中都包含这两个方法,并且它们都接受3个参数:要处理的事件名、要为事件添加的处理程序的函数和一个表示事件处理阶段的布尔值。...我想看到了上图的输出结果,大家应该明白了为何加上bind之后会无法移除监听事件了,其根源就在于每次加上bind之后返回的函数并不是指向同一个函数 解决方案 既然明白了原因所在,那么我们来说一下如何解决。
领取专属 10元无门槛券
手把手带您无忧上云