jQuery基础事件篇

作者: 尘中老 | 来源:发表于2016-09-11 22:23 被阅读0次

一、事件

1.1、绑定事件

bind()://为每个匹配元素的特定事件绑定事件处理函数。jQuery 3.0中已弃用此方法
on()//在选择元素上绑定一个或多个事件的事件处理函数。
one()//附加一个事件,只运行一次,然后删除自己

1.2、解除事件

unbind()//bind()的反向操作,从每一个匹配的元素中删除绑定的事件。jQuery 3.0中已弃用此方法,请用 off()代替。
off()//在选择元素上移除一个或多个事件的事件处理函数

1.3、简单事件

blur()//当元素失去焦点时触发 blur 事件
change()//当元素的值发生改变时,会发生 change 事件
click()//触发点击事件
dbclick()//双击元素时,会发生 dblclick 事件
focus()//当元素获得焦点时,触发 focus 事件。
$(window).scroll()//当浏览器窗口滚动时,会发生 scroll 事件。
$(window).unload()//在当用户离开页面时,会发生 unload 事件。

1.4、复合事件
hover(fn1,fn2):鼠标移入,触发fn1;鼠标移出触发fn2

//例:
$("#div").hover(
        function(){
             $(this).css("background", '#bbffaa');
        }, 
        function(){
            $(this).css("background", 'red');
        });

二、事件对象

2.1、事件对象的获取
  在事件触发的函数中传递event参数
2.2、事件对象的常用属性
event.type 事件类型
event.target 触发事件的元素
//target:当前点击的标签
event.currentTarget 事件绑定在哪个元素上
//currentTarget:保存的是事件绑定的对象
event.pageX:相对于文档的左侧
event.pageY 相对于文档的顶部
2.3、事件的冒泡以及默认行为的处理

事件冒泡:点击某个节点后,如果该节点的父节点也有点击事件,则父节点的点击事件也会被触发

阻止冒泡:event.stopPropagation()

默认行为:一些标签在点击后会有自己的行为,如a标签点击后会自动跳转到指定的链接中

阻止默认行为触发:event.preventDefault()

三、高级事件

3.1、事件模拟操作(模拟用户触发了某个事件)
element.trigger("")
$(document).ready(function(){

 $('div').click(function(){
 alert('888888888');
 });
 //链式语法 很强势
 $('div').click(function(){
    alert('888888888');

}).click();

 //事件模拟 不通过用户触发事件 让事件自己触发起来
     $('div').trigger('click');
     $('div').triggerHandle('click');
 })
3.2、命名空间

给事件名添加一个新的名字,使用点分割。移除事件,可以通过新添加进去的名字来移除

$(function(){
 //命名空间:我们可以在事件名后给它添加一个新的名字,使用点分割。这样就通过后缀把相同事件添加的不同方法区分开,方便了事件管理
 $('div').on('click.tel',function(){
 alert('包小姐:138****8181');
 })
 $('div').on('click',function(){
 $(this).css("background","red");
 })
 $('div').off('click.tel');
 })
3.3、事件委托

事件自身不处理事件,把处理任务委托给父元素,甚至根元素(document)

/*$(document).ready(function(){
            $('ul').on("click",function(e){
                alert("触发该事件的是!!!"+e.target.textContent);
                alert("事件绑定在哪个元素上"+e.currentTarget.textContent);
            })
        })*/
//事件委托
$(document).ready(function(){
            $('ul').on("click","li",function(e){
                alert("触发该事件的是!!!"+e.target.textContent);
                alert("事件绑定在哪个元素上"+e.currentTarget.textContent);
            });
        })

四、自定义事件编写

自己定义一个事件名,并给这个事件名添加一个函数。
最后使用element.trigger()来执行自定义的事件

$(function(){
 //自定义事件不指望引擎触发
 //链式语法不能执行
 //只能通过trigger/triggerHandler相关语法去调用
 $('div').on('helloworld',function(){
     alert('23');
 })
     $('div').triggerHandler('helloworld');
 })

相关文章

网友评论

    本文标题:jQuery基础事件篇

    本文链接:https://www.haomeiwen.com/subject/myzuettx.html