jQuery 事件操作
简单方式注册事件
- 语法:jQuery 对象.事件名(事件处理程序);
$("input").click(function () {
alert(1)
})
on 方法注册事件
- 注册简单事件语法:jQuery 对象.on('事件名',事件处理程序);
- 事件委托的实现:jQuery 对象.on('事件名','选择器',事件处理程序);
选择器:子孙元素
注意:在事件处理程序中,this 代表的是子孙元素(所点最先触发的)
$("input").on("click",function () {
alert(2)
})
$("ul").on("click", "li", function () {
alert($(this).text())
})
off 方法移除事件
- 解绑简单的事件:jQuery 对象.off('click',事件处理程序名称)
- 解绑事件委托注册的事件:jQuery 对象.off('click',‘选择器’,事件处理程序名称)
var fun1 = function () {
alert(2)
};
var fun2 = function () {
alert(3)
};
$("input").on("click",fun1)
$("input").on("click",fun2)
$("input").off("click",fun2)
var fn1 = function () {
alert($(this).text())
};
var fn2 = function () {
alert($(this).index())
};
$("ul").on("click", "li", fn1)
$("ul").on("click", "li", fn2)
$("ul").off("click", "li", fn2)
触发事件
- 语法:jQuery 对象.trigger('事件名');
jQuery 事件对象
事件对象
鼠标事件对象相关的属性
- 事件对象.clientX/Y 参照浏览器
- 事件对象.pageX/Y 参照文档
- 事件对象.offsetX/Y 参照元素
键盘事件对象相关的属性
- 事件对象.keyCode 返回键码数字
- 事件对象.altKey/shiftKey/ctrlKey 返回是布尔值。 检测是否按下(true)
公共的属性或方法
- 属性
事件对象.target 最初触发事件的DOM元素
事件对象.currentTarget 在事件冒泡阶段中的当前DOM元素
- 方法:
事件对象.preventDefault(); 阻止默认行为
事件对象.stopPropagation(); 阻止事件冒泡