共计 1364 个字符,预计需要花费 4 分钟才能阅读完成。
jQuery
事件注册
element.事件(function() {
})
$(".btn").click(function() {
// 事件处理程序
})
其他事件和原生基本一致
比如
mouseover
、mouseout
、blur
、focus
、change
、keydown
、keyup
、resize
、scroll
等
jQuery
事件处理
on()
方法在匹配元素上绑定一个或多个事件的事件处理函数
element.on(events, [selector], fn)
events
:一个或多个用空格分隔的事件类型,如click
或keydown
selector
:元素的子元素选择器fn
:回调函数即绑定在元素身上的侦听函数
on()
可以绑定多个事件,多个处理程序
$(".box").on({
mouseenter: function() {
$(this).css("color","red")
},
click: function() {
$(this).css("color","blue")
},
mouseleave: function() {
$(this).css("color","green")
},
})
$(".box").on("mouseenter mouseleave", function() {
$(this).toggleClass("current")
})
如果有的事件只想触发一次,可以用 one()
来绑定事件,使用方法同上
on()
可以事件委派操作
$("ul").on("click", "li", function() {
alert("Hell Word")
})
on()
可以给动态生成的元素绑定事件
$("ol").on("click", "li", function() {
alert("Hell Word")
})
事件处理 off()
解绑事件
off()
方法可以移除通过 on()
方法添加的事件处理程序
$("div").off() // 解绑div元素所有的事件处理程序
$("div").off("click") // 解绑div元素里面的点击事件
$("ul").off("click", "li") // 解绑事件委托
自动触发事件 trigger()
有些事件希望自动触发,比如轮播图自动播放功能跟点击右侧按钮一致;可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发
element.click() // 第一种简写形式
$("div").click()
element.trigger("click") // 第二种自动触发模式
$("div").trigger("click")
$("div").on("click", function() {
alert("Hi~")
})
$("div").trigger("click") // 此时自动触发点击事件,不需要鼠标点击
element.triggerHandler(type) // 第三种自动触发模式
$("input").triggerHandler("focus") // 触发事件不会有光标闪烁
jQuery
事件对象
事件被触发,就会有事件对象的产生
element.on(events, [selector], function(event) {
})
- 阻止默认行为:
event.preventDefault()
或者return false
- 阻止冒泡:
event.stopPropagation()
正文完