jQuery 事件
jQuery 事件注册
element.事件(function(){})
例子
$("div").click(function(){ 事件处理程序 })
其他事件和原生基本一致。
比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等
jQuery 事件处理
事件绑定
element.on(events,[selector],fn)
- events:一个或多个用空格分隔的事件类型,如"click"或"keydown" 。
- selector: 元素的子元素选择器 。
- fn:回调函数 即绑定在元素身上的侦听函数。
绑定多事件
$(“div”).on({
mouseover: function(){},
mouseout: function(){},
click: function(){}
});
处理程序相同
$("div").on("mouseover mouseout", function() {
$(this).toggleClass("current");
});
事件委派
事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素。
$('ul').on('click', 'li', function() {
alert('hello world!');
});
动态绑定
动态创建的元素,click() 没有办法绑定事件, on() 可以给动态生成的元素绑定事件
$("div").on ("click","p", function (){
alert("俺可以给动态生成的元素绑定事件")
});
事件解绑
解绑 p 元素所有事件处理程序
$("p").off()
解绑 p 元素上面的点击事件后面的 foo 是侦听函数名
$("p").off("click")
解绑事件委托
$("ul").off("click", "li")
自动触发事件
element.click() // 第一种简写形式
element.trigger("type") // 第二种自动触发模式
element.triggerHandler("type") // 第三种自动触发,不会触发元素的默认行为
$("input").triggerHandler("focus") // 不会有光标闪烁
jQuery 事件对象
事件被触发,就会有事件对象的产生。
element.on(events,[selector],function(event) {})
阻止默认行为:event.preventDefault()
或者 return false
阻止冒泡: event.stopPropagation()
$("document").on("click",function(){
console.log("document");
})
$("div").on("click",function(event){
console.log("div");
event.stopPropagation();
})