为了账号安全,请及时绑定邮箱和手机立即绑定
  • $('body').on('click', 'a', function(e)是委托机制 在点击a这个元素时 事件向上传递(冒泡) 直到与第二个参数相等 事件被消费 并产生回调函数 就这个函数 当然直接绑定a标签效果也是一样 内部实现不同 但是如果a标签的祖父级要拿到a标签的点击事件或者a标签的内容就可以用这个函数
    查看全部
    0 采集 收起 来源:on()的高级用法

    2017-09-29

  • focusin 和 focusout 都支持冒泡事件,其下的子元素获取和失去焦点,都能产生冒泡事件 focus 和 blur 不支持冒泡事件,所以必须绑定在具体元素上,仅仅只有此元素有聚焦和失焦的效果
    查看全部
  • triggerHandler与trigger的用法是一样的,重点看不同之处: triggerHandler不会触发浏览器的默认行为,.triggerHandler( "submit" )将不会调用表单上的.submit() .trigger() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素 使用 .triggerHandler() 触发的事件,并不会在 DOM 树中向上冒泡。 如果它们不是由目标元素直接触发的,那么它就不会进行任何处理 与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,.triggerHandler() 返回最后一个处理的事件的返回值。如果没有触发任何事件,会返回 undefined
    查看全部
  • trigger 事件还有一个特性:会在DOM树上冒泡,所以如果要阻止冒泡就需要在事件处理程序中返回false或调用事件对象中的 .stopPropagation() 方式可以使事件停止冒泡。 若要触发通过 jQuery 绑定的事件处理函数,而不触发原生的事件,使用 .triggerHandler() 来代替。 triggerHandler与trigger的用法是一样的,不同之处: 1. .triggerHandler 不会触发浏览器的默认行为,.triggerHandler("submit")将不会浏览器调用表单上的.submit() 2. .trigger() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素。 3. 使用 .triggerHandler() 触发的事件,并不会在DOM树中向上冒泡。如果它们不是由目标元素直接触发的,那么它们就不会进行任何处理。 4. 与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,.triggerHandler() 返回没有触发任何事件,会返回 undefined
    查看全部
  • 事件对象是用来记录一些事件发生时的相关信息的对象。事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁 回到上面的问题,既然事件对象是跟当前触发元素息息相关的,所以我们就能从里面相关的信息,从事件对象中找到 event.target event.target target 属性可以是注册事件时的元素,或者它的子元素。通常用于比较 event.target 和 this 来确定事件是不是由于冒泡而触发的。经常用于事件冒泡时处理事件委托 简单来说:event.target代表当前触发事件的元素,可以通过当前元素对象的一系列属性来判断是不是我们想要的元素
    查看全部
  • 众所周知类似于mousedown、click、keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发。 .trigger:根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。 .trigger 除了能够触发浏览器事件,同时还支持自定义事件,并且自定义事件还支持传递参数。 $("#elem").on("Aaron",function(event,arg1,arg2){ alert("自触自定义时间"); }); $("#elem").trigger("Aaron",["参数1","参数2"]); // 点击更新次数 $("button:first").click(function(event,bottonName){ bottonName = bottonName || "first"; update($("span:first"),$("span:last"),bottonName); }); // 通过自定义事件调用,更新次数 $("button:last").click(function(){ $("button:first").trigger("click","last"); }); function update(first,last,bottonName){ first.text(bottonName); var n = parseInt(last.text(), 10); last.text( n + 1); }
    查看全部
  • 1. event.type: 获取触发元素的事件类型 2. event.pageX 和 event.pageY: 获取鼠标当前相对于页面的坐标 3. event.preventDefault() 方法:阻止默认行为 在执行这个方法后,如果点击一个链接(a标签),浏览器不会跳转到新的 URL 去了。我们可以用 event.isDefaultPrevented() 来确定这个方法是否(在那个事件对象上)被调用过了。 4. event.stopPropagation() 方法:阻止事件冒泡 事件是可以冒泡的,为防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数。 5. event.which:获取在鼠标单击时,单击的是鼠标的哪个键 event.which 将 event.keyCode 和 event.charCode 标准化了。 6. event.currentTarget:在事件冒泡过程中的当前DOM元素 冒泡前的当前触发事件的DOM对象,等同于this 7. this 和 event.target 的区别: js中事件是会冒泡的,所以this是可以变化的,但 event.target 不会变化,它永远是直接接受事件的目标DOM元素; 8. this 和 event.target 都是dom对象 如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和$(this)的使用、event.target和$(event.target)的使用;
    查看全部
  • <div class="left"> <div class="aaron"> <a>点击这里</a> </div> </div> //给body绑定一个click事件 //没有直接a元素绑定点击事件 //通过委托机制,点击a元素的时候,事件触发 $('body').on('click', 'a', function(e) { // 弹窗1次,将a改为div就会弹窗2次 alert(e.target.textContent) }) 事件绑定在最上层 body 元素上,当用户触发在 a 元素上,事件将往上冒泡,一直会冒泡在 body 元素上。如果提供了第二参数,那么事件在往上冒泡的过程中遇到了选择器匹配的元素,将会触发事件回调函数。
    查看全部
    0 采集 收起 来源:on()的高级用法

    2018-03-22

  • 之前学的鼠标事件,表单事件月键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理。翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个"on"方法来实现的。jQuery on()方法是官方推荐的绑定事件的一个方法。 1. 多个事件绑定同一个函数: // 通过空格分离,传递不同的事件名,可以同时绑定多个事件 $("#elem").on("mouseover mouseout", function(){ }); // 一个事件或多个事件的格式。。。 2. 多个事件绑定不同函数: // 通过逗号分离,传递不同的事件名,可以同时绑定多个事件,每一个事件执行自己的回调方法 $("#elem").on({ mouseover: function(){}, mouseout: function(){} }); 3. 将数据传递到处理程序 function greet( event ){ alert("Hello " + event.data.name ); // Hello 慕课网 } $( "button" ).on("click",{ name: "慕课网"; }, greet); function greet(event){ $("#test4").text("点击触发:"+event.type+":"+event.data.action); } $("#test4").on("mousedown mouseup",{ action:"111" },greet)
    查看全部
  • 理论上 keydown 和 keyup 可以绑定到任何元素,但keydown/keyup事件只是发送到具有焦点的元素上,不同的浏览器中,可获得焦点的元素略有不同,但是表单元素总是能获取焦点,所以对于此事件类型表单元素是最合适的。 keydown 获得的是之前的文本,keyup 获得的是之后的文本 析: keydown 每次获取的内容都是之前输入的,当前输入的获取不到 keydown 事件触发在文字还没敲进文本框,这时如果在 keydown 事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而 keyup 事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本 keydown 是不区分英文字母大小写的,a和A的which都是65,但是 keypress 是区分大小写的,只是 keypress 不能接收到除英文字母、数字、Enter以外的键,而 keydown 却是可以的!
    查看全部
  • form元素是有默认提交表单的行为,如果通过submit处理的话,需要禁止浏览器的这个默认行为 传统的方式是调用事件对象 e.preventDefault() 来处理, jQuery中可以直接在函数中最后结尾return false即可 例: <div class="aaron"> <form id="target1" action="test.html"> 回车键或者点击提交表单: <input type="text" value="输入新的值" /> <input type="submit" value="Go" /> </form> </div> //回车键或者点击提交表单 $('#target1').submit(function(e) { alert('捕获提交表达动作,不阻止页面跳转') }); //回车键或者点击提交表单,禁止浏览器默认跳转: $('#target2').submit(function() { alert('捕获提交表达动作,阻止页面跳转') return false; });
    查看全部
  • change事件: 1. input元素: 监听value值的变化,当有改变时,失去焦点后触发 change 事件,对于单选按钮和复选框,当用户用鼠标做出选择时,该事件就立即触发! 2. select元素: 对于下拉选择框,当用户用鼠标做出选择时,该事件就立即触发! 3. textarea元素: 当有改变时,失去焦点后触发 change 事件!
    查看全部
  • 当某元素触发了 focus 事件时,它也就产生了 focusin() 事件! 而当某元素触发了 blur 事件时,它也就产生了 focusout() 事件!
    查看全部
  • mouseenter事件和mouseover的区别: 关键点就是:冒泡的方式处理问题 例: <div class="aaron2"> <p>鼠标离开此区域触发mouseleave事件</p> </div> 解析: 如果在p元素与div元素都绑定mouseover事件,鼠标在离开p元素,但是没有离开div元素的时候,触发的结果: p元素响应事件 div元素响应事件 这里的问题是div为什么会被触发? 原因就是事件冒泡的问题,p元素触发了mouseover,他会一直往上找父元素上的mouseover事件,如果父元素有mouseover事件就会被触发 所以在这种情况下面,jQuery推荐我们使用 mouseenter事件, mouseenter事件只会在绑定它的元素上被调用,而不会在后代节点(其他节点)上被触发
    查看全部
  • 用交互操作中,经常需要知道用户是否有移动的操作。基于移动的机制可以做出拖动、拖拽一系列的效果出来。针对移动事件,jQuery提供了一个mousemove的快捷方法可以监听用户移动的的操作 mousemove事件触发需要以下几点: 1. mousemove事件是当鼠标指针移动时触发的,即使是一个像素 2. 如果处理器做任何重大的处理,或者如果该事件存在多个处理函数,这可能造成浏览器的严重的性能问题 function dataq(e) { $(this).find('p:last').html('数据:' + e.data) } function a() { $(".right").mousemove(1111, dataq) } a(); $(".bottom").mousemove(1234,function(e){ alert(e.data); // 1234 $(this).find("p:last").html("数据:"+e.data) });
    查看全部

举报

0/150
提交
取消
课程须知
1、有HTML/CSS基础 2、有JavaScript基础
老师告诉你能学到什么?
1、jQuery的基础语法 2、jQuery事件处理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!