最近在进行页面开发,在做页面特效的时候,需要给一个动态加载的按钮赋予一个事件 于是不假思索的 用$(obj).bind(); 来绑定事件 。...但是这样存在一个问题: bind确实能绑定事件,但是那是相对于固定的html标签来说 当页面内容属于动态加载的时候,bind事件就存在一个bug, 只能bind一次,当你第二次触发事件的时候就没用了...当我使用bind来绑定click事件,这时, 第一次点击click能成功触发 但是第二次点击,click事件无效了......后面研究发现,jQuery还有个绑定事件的方法:delegate(); 用法如下: $(".sentnum-box").delegate(".a-add-ordergoods","click",function...(){ //js数据代码 }); 这样就能实现对动态数据绑定事件,并永不失效
需要使用addEventListener方法添加事件,jquery则不会 它会全部执行,两者都是同时执行,并不是按顺序一一执行。...{ $("p").unbind(); //取消p标签所有绑定的事件 }); unction alertMe() { alert("Hello World!")...和bind方法有两个不同 1.没有map不能单独规定事件 2.live方法绑定的事件会应用于当前现有的元素以及未来元素,也就是事件委托机制,把节点的处理统一委托给了根节点document,所以后面动态添加的新节点同样会有相同的事件...规定要添加事件处理程序的一个或多个子元素。 event 必需。规定添加到元素的一个或多个事件。 由空格分隔多个事件值。必须是有效的事件。 data 可选。规定传递到函数的额外数据。...规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。 data 可选。规定传递到函数的额外数据。 function 可选。
**Binding in Constructor:** 在 JavaScript 类中,方法默认不被绑定。这也适用于定义为类方法的 React 事件处理程序。通常我们在构造函数中绑定它们。...**Public class fields syntax:** 如果你不喜欢 bind 方案,则可以使用 *public class fields syntax* 正确绑定回调。
bind()和unbind()提供了事件的绑定和取消机制,既可以绑定html默认支持的事件,也能够绑定自定义的事件。 1、JQuery中事件可以重复绑定,不会覆盖。...2、使用bind一次绑定多个事件和处理函数。...unbind用来取消之前通过bind绑定的事件处理函数,总的来说有三种形式:取消所有事件、取消某种类型的事件、取消某种类型下的某个事件处理函数。...button1上所有已经绑定的事件处理函数。...$(“#button1”).unbind(“click”):只取消button1上绑定的click类型的事件处理函数。
jQuery简单绑定事件的方式,可以让我绑定多个事件处理程序跟DOM2级绑定事件的方式一样...., fn) 说明:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。...on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。on汇总了bind和live两种绑定事件的方式。可以支持一般的bind方法或者委托的方法。...on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。on汇总了bind和live两种绑定事件的方式。可以支持一般的bind方法或者委托的方法。...实例: // 解绑所有的on的事件 $("p").off() // 解绑所有的p的委托click事件,所有子元素都被取消绑定 $("p").off( "click", "**" ) // 解绑具体的某个事件处理程序
一是这种方式只能绑定一个处理函数,且不能取消绑定不够灵活;二是全局函数容易混淆,项目到达一定规模后容易失控,导致意外。...W3C 标准推荐使用 DOM 对象的 addEventListener 和 removeEventListener 方法来绑定和取消绑定处理函数。...事件对象 e 由于原生 DOM API 写起来太过繁琐,以及兼容性的处理太过复杂,这里推荐使用 jQuery 等现成框架,业余时间再对常见的兼容性进行了解,以便遇到意外时知道问题出在何处。...编写兼容 IE8 的代码,需要对事件绑定、事件对象获取、元素查找、点击坐标、元素坐标等操作做大量兼容处理。...有兴趣的同学课余可以尝试一下,使用原生 JS 兼容 IE8 和现代浏览器后,再对比上述代码,就能明白 jQuery 的强大之处了~ 附:可用的跨浏览器兼容的 jQuery 标准化事件属性 jQuery
jQuery简单绑定事件的方式,可以让我绑定多个事件处理程序跟DOM2级绑定事件的方式一样....); // jQuery的事件处理程序中,this也执行绑定当前事件处理程序的dom对象 }); $('#btn').click(function(e){ // e =jQuery.fn.event...// jQuery的事件处理程序中,this也执行绑定当前事件处理程序的dom对象 }); 1.3 其他常用绑定简单事件的方法 方法名 实例 说明 blur([[data...], fn) 说明:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。...实例: // 解绑所有的on的事件 $("p").off() // 解绑所有的p的委托click事件,所有子元素都被取消绑定 $("p").off( "click", "**" ) // 解绑具体的某个事件处理程序
.bind() 为一个元素绑定一个元素处理程序。 ...一个选择器,当绑定事件处理程序时匹配最初传递给 handler 以前附加的事件处理函数. .off(events[,selector]) events...selector 一个选择器,当绑定事件处理程序的匹配最初传递给。 ....trigger() 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。 ...events 一个或多个事件类型和以前绑定的函数组成的一个对象,用来以解除他们(处理程序)。
,动态添加元素的时候,不需要再手动地绑定处理函数了。...使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。...fn : 相应的处理函数 描述:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。...与live() 相对应,取消绑定,则用下列代码: $("p").die(); 在事件绑定上,jQuery 提供了一种更通用的函数: on(events,[selector],[data],fn)...off() 方法移除用.on()绑定的事件处理程序。
// useCapture :是否使用捕捉,一般用 false,事件触发时,会将一个 Event 对象传递给事件处理程序。...; } } 事件函数的解除绑定 和事件的绑定其实是相对应的,如果需要接触事件的绑定,运行对应的函数就可以了。...如果是jQuery的bind()和delegate()绑定,也是存在对应的解绑函数用以清除注册事件,比如unbind()和undelegate()。...这个类别中的事件被认为是可取消的,他们取消的行为被称为他们的默认行为。 取消事件:可取消的事件对象可以与一个或多个“默认动作”相关联。要取消事件,请调用该preventDefault()方法。...//仅仅是在HTML事件属性 和 DOM0级事件处理方法中 才能通过返回 return false 的形式组织事件宿主的默认行为。
并且警惕隐式的万能选择器 $('div.someclass :radio'); // 差 $('div.someclass input:radio'); // 棒 操作任何元素前先将其从文档卸载,完了再贴回去...var $myList = $("#list-container > ul").detach(); //...一大堆对$myList的处理 $myList.appendTo("#list-container...break 用return false continue 用return ture或者return $.proxy $.proxy方法类似于ECMAScript 5的bind方法,可以绑定函数的上下文...jQuery.proxy()的主要用处是为回调函数绑定上下文对象。...它返回的是jQuery对象的实例。 jquery事件命名空间 如果可能尽量在绑定事件处理程序时使用一个命名空间,这样可以方便地取消绑定而不会影响其他绑定。
在前端开发中,处理用户与页面的交互是至关重要的一部分。JQuery作为一个广泛应用的JavaScript库,为我们提供了简便而强大的事件绑定机制,使得我们能够更加灵活地响应用户的行为。...事件是指用户在页面上进行的操作,比如点击、鼠标移动、键盘输入等。而事件绑定则是将特定的 JavaScript 代码与页面上的某个事件相关联,以便在事件发生时执行相应的操作。...这对于大型应用程序和动态内容非常有用。 它们仍然会受到事件的监听。 标准方式:多个事件类型 on 方法不仅可以绑定单一的事件类型,还可以同时绑定多个事件类型。...这样,不论有多少个列表项,只需要一个事件绑定,就能够监听它们的点击事件。
使用jQuery处理事件 事件处理 一个栗子,单击p时背景变成灰色 由于es6的箭头函数不支持this的绑定,所以无法使用箭头函数,只能使用匿名函数 html 事件处理程序的高级注册 使用bind()为添加事件 $('p').bind('click', f); 将p元素的click事件和函数f进行绑定,需要使用闭包 还可以使用三个值,第一值为事件,第二个值为Event...$('*').unbind(); // 从所有元素中移除所有的jquery事件处理程序 $('a').unbind('mouseover mouseout'); // 移除两个属性 // 取消绑定在...myMod命名空间下的所有mouseover 和mouseout处理程序 $('a').unbind('mouse.myMod mouseout.myMod'); // 取消绑定在myMod命名空间下的所有事件处理程序...$('a').unbind('.myMod'); // 取消同时绑定在ns1和ns2命名空间下的单击处理程序 $('a').unbind('click.ns1.ns2') 使用命名空间达到模块化的目的
IE事件处理程序: IE(以及Opera)实现了attachEvent()和detachEvent()方法进行事件绑定与解绑,绑定事件会被添加到冒泡阶段。...stopPropagation():如果event对象的bubbles属性为true,可以取消时间的进一步冒泡或捕获(取决于事件流类型)。...stopImmediatePropagation(): 这是dom3级事件中新增的方法,在取消进一步冒泡与捕获的同时,阻止任何事件处理程序被调用。 现有如下代码: <!...首先我们需要明确的一点是event对像的生存周期为: 当每一段事件处理程序执行完后,检测事件是否能继续冒泡,如无法继续冒泡,则进行销毁。...如果能继续冒泡,则继续传递事件至顶,完成用户绑定事件处理后,进行事件销毁。 而在event对象被销毁之前,会检测event对象是否执行了event.preventDefault()。
二、$().click() 作用: 为目标元素绑定点击事件 源码: //这种写法还第一次见,将所有鼠标事件写成字符串再换成数组 //再一一绑定到DOM节点上去 //源码10969行 jQuery.each...() 作用: 在被选元素及子元素上添加一个或多个事件处理程序 源码: //绑定事件的方法 //源码5812行 jQuery.fn.extend( { //在被选元素及子元素上添加一个或多个事件处理程序...elemData ) { return; } //调用者可以传入一个自定义数据对象来代替处理程序 // Caller can pass in an object...handler.guid ) { handler.guid = jQuery.guid++; } //如果事件处理没有,则置为空对象 // Init...,取消jQuery.event.trigger()的第二个事件 // Discard the second event of a jQuery.event.trigger() and
jQuery核心:事件处理 jQuery具有强大的DOM事件处理功能,使用jQuery的事件处理方法,我们可以非常方便地为DOM元素的指定事件绑定处理函数。...,第一次触发后就自动解除绑定 以上方法均可重复调用,从而为指定的click事件绑定多个处理函数。...触发click事件时,将按照绑定顺序依次执行每个处理函数。...此外,我们还可以解除元素上绑定的事件处理函数。...", "click"); //主要用于解除通过on()方法绑定的处理函数 $("selector").off("click"); /* 实际上,多数时候,它们是可以混用的 */ 关于jQuery事件处理的更多详情
绑定click事件,使用jquery的$().click(func)?别闹了,属实是low。 虽然之前在ajax回调成功后通过dom添加过元素,遇到过这种情况,事件绑定会失效。...jQuery on()方法是官方推荐的绑定事件的一个方法。...$().on()的知识点补充: 1.从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。...2.该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。 3....在事件的处理中,可以阻止冒泡但是允许默认事件的发生。
再来看一个例子,为a元素绑定一个处理点击事件的函数: $(‘a’).click(function(){ alert($(this).attr(‘id’)); }); 这段代码的意思是,点击a元素后...事件的委托处理(Event Delegation) javascript的事件模型,采用”冒泡”模式,也就是说,子元素的事件会逐级向上”冒泡”,成为父元素的事件。 利用这一点,可以大大简化事件的绑定。...因此,这个事件只需要在父元素绑定1次即可,而不需要在子元素上绑定100次,从而大大提高性能。这就叫事件的”委托处理”,也就是子元素”委托”父元素处理这个事件。 ...$(document).on(“click”, “td”, function(){ $(this).toggleClass(“click”); }); 如果要取消事件的绑定,就使用off()...(2)如果你要对一个DOM元素进行大量处理,应该先用.detach()方法,把这个元素从DOM中取出来,处理完毕以后,再重新插回文档。根据测试,使用.detach()方法比不使用时,快了60%。
再来看一个例子,为a元素绑定一个处理点击事件的函数: $('a').click(function(){ alert($(this).attr('id')); }); 这段代码的意思是...事件的委托处理(Event Delegation) javascript的事件模型,采用"冒泡"模式,也就是说,子元素的事件会逐级向上"冒泡",成为父元素的事件。 利用这一点,可以大大简化事件的绑定。...因此,这个事件只需要在父元素绑定1次即可,而不需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。 ...$(document).on("click", "td", function(){ $(this).toggleClass("click"); }); 如果要取消事件的绑定,就使用off...(2)如果你要对一个DOM元素进行大量处理,应该先用.detach()方法,把这个元素从DOM中取出来,处理完毕以后,再重新插回文档。根据测试,使用.detach()方法比不使用时,快了60%。
但是这也有其他问题:如果没有接收者监听,那么这些路由信息不会保留,这个问题稍后再解决,我们先把发布路由信息的 Exchange 从 Direct 改为 Fanout。...Fanout Exchange 也就是 amq.fanout: 修改代码,暂时改用 amq.fanout 来发布传感器路由信息: 首先,删除第 38 行的代码,它原是用来创建一个 Queue 以便协调程序可以接收到传感器的路由信息...,并把它们在一个事件聚合器里面翻译成事件。...不过目前它主要聚焦获取消息这项工作,所以它有三个字段: 到 RabbitMQ 的连接 在该连接上的 Channel 一个 Map,当作注册表,里面存放着这个协调器所监听的源,使用 Map...而在之前,我刚把代码修改为让传感器通过 amq.fanout Exchange 来发布它们的信息,所以我们需要把这个 Queue 重新绑定到那个上面。