详细说明jQuery中的事件
一般介绍jQuery增加并扩展了基本的事件处理机制,它不仅提供了更优雅的事件处理语法,而且极大地提高了事件处理能力。
jQuery中的事件
加载DOM
在jQuery的$(document)。Ready()方法用于Javascript取代在window.onload方法,但也有一些不同点
1。定时执行
例如,我们有一个有很多图片的网页。
美元的方法(文件)。Ready()可以执行在网页DOM树被加载,并在window.onload方法必须在加载DOM树和加载图片执行。
如果我们使用jQuery,我们希望在执行使用加载()方法之后加载整个页面。
下面两段代码的功能是相同的。
jQuery
$(窗口)加载(函数(){)
代码1
});
在window.onload =函数(){
代码2
};
2,多次使用
Javascript的onload事件只能保存一个引用一个函数在一个时间,和$(document)。Ready()可以节省超过一
函数一(){
警报(1);
}
函数2(){
警报(2');
}
在window.onload =一;
在window.onload =两(2); / /只
jQuery
$(文档)Ready(函数(){)
(一);
});
$(文档)Ready(函数(){)
(二);
})两个()和两个()都被执行。
3,速记法
$(文档)Ready(函数({)});可以缩写为$(函数(){ });
事件绑定
绑定()函数的语法:绑定(类型,数据},FN)
第一个参数是事件类型。
第二个参数是可选参数,一个额外的数据对象,是一个event.data属性值传递给事件对象。
第三个参数是用于绑定的处理函数。
例如,有两个div,第二个div隐藏,当我们单击第一个div时,第二个div显示
$(函数(){())
$(# DIV1)。Bind(听到咔哒声,函数()){
$(这个);
});
});
添加功能,如果格式显示当点击DIV1,隐藏它,否则它会显示它
$(函数(){())
$(# DIV1)。Bind(听到咔哒声,函数()){
如果($(。))((可见)){
$(这个);
其他{ }
$(这个);
}
});
});
速记:
$(# DIV1)。Click(function(){)
如果($(。))((可见)){
$(这个);
其他{ }
$(这个);
}
})
综合事件
1、悬停()方法
它用来模拟光标的悬停事件,当光标移动到元素时,它触发第一个函数,当光标移出元素时,它触发第二个函数。
$(# DIV1)。Hover(function(){)
$(这个);
}函数(){()
$(这个);
});
2,切换()方法
它用来模拟鼠标的连续点击事件。当鼠标单击第一个元素时,它会触发第一个函数。当鼠标单击相同的函数时,它触发第二个函数。
$(# DIV1)。Toggle(function(){)
$(这个);
}函数(){()
$(这个);
});
防止事件冒泡并防止默认行为。
1,防止事件冒泡。
里面()方法
2。防止违约行为
PreventDefault()方法
注意:1、在jQuery中返回false是为了防止事件冒泡并防止默认行为。
2,jQuery不支持事件捕获
事件对象的属性
1、event.type
改变方法的效果是获得事件的类型。
$(# DIV1)。Click(功能(EV){
警报(类型);
})
2,event.target
获取触发事件的元素
$(# DIV1)。Click(功能(EV){
警报(EV。目标。ID); / / DIV1
})
3、event.relatedtarget
把相关的元素
4、event.pagex和event.pagey
获取光标相对于页面的坐标和y坐标。
$(# DIV1)。Click(功能(EV){
警报(ev.pagex + ',' + EV。pagey); / / 275181
})
5、event.which
该方法的功能是在鼠标单击事件中获取鼠标左、中、右键;键盘事件中获取键盘的键。
$(# DIV1)。Click(功能(EV){
1个鼠标左键,2个在鼠标,3个是鼠标右键。
})
删除事件
Unbind()方法的语法:解除绑定({型},{资料});
第一个参数是事件类型,第二个参数是要删除的函数。
先看一个例子,结合DIV1以下事件
$(# DIV1)。Bind(听到咔哒声,函数()){
警报(1);
})。Bind(听到咔哒声,函数(){(){
警报(2');
})。Bind('mouseover,函数(){(){
警报(远);
})
1,如果没有参数,则删除所有绑定事件。
$(# DIV1)。Unbind(); / /删除所有事件
2,如果将事件类型作为参数提供,则只删除该类型的绑定事件。
$(# DIV1)。Unbind('mouseover '); / /删除mouseover事件
三.如果通过绑定传递的处理函数作为第二个参数,则只删除特定的时间处理函数。
模拟操作
1。常见的模拟
触发()方法可以在jQuery用来完成模拟,例如,下面的代码可以用来触发的ID的单击事件作为一个钮扣
$(# BTN)。Trigger(听到咔哒声);
2,触发自定义事件
触发器()方法不仅触发具有相同名称的浏览器支持的事件,而且还触发自定义名称的事件。
$(# BTN)。Bind('myclick功能()){
警报(1);
});
$(# BTN)。Trigger('myclick);
三.数据传输
$(# BTN)。Bind('myclick功能(事件、2,message2){)
警报(2 + message2);
});
$(# BTN)。Trigger('myclick,{1
4。执行默认操作
$(输入的)。Trigger('focus');
上面的代码触发输入元素的焦点事件,元素本身会得到焦点。
如果你只想在一个元素会触发特定的事件,而这个事件取消浏览器的默认操作,您可以使用triggerhandler()方法
其他用途
添加事件名称空间便于管理
例如,可以将具有名称空间的元素绑定的多个事件类型规范化。
$('div)。Bind(点击。插件,功能()){
警报(1);
});
$('div)。Bind('mouseover。插件功能()){
警报(2');
});
$('div)。Bind('dbclick。插件功能()){
警报(远);
});
$(按钮)。Click(function(){)
$('div)。Unbind('插件');
})
以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!