绑定方式:on/off
$(".box").on("click mouseout",".min_box",{sum:20},function (e) {
console.log("s's's");
});
参数 1: 事件类型 (必填)——可以同时绑定多个事件,但限于事件功能相同时;事件功能不相同时,可以采用链式编程,在该方法的后面续写
参数 2: 具体执行功能的 子元素! (可选)
参数 3: 传递到函数内部的数据(有些类似实参) (可选)
参数 4: 具体功能 (必填)
通过on绑定事件和直接通过事件名绑定 的区别:
通过事件名绑定 是在页面加载后,获取的所有类名为btn1的元素,然后绑定了这个click事件,你要是通过其他操作再生成一个btn1元素,它就没有click这个事件;而on()事件起到了监听的效果,可以实现动态html元素绑定,比如一开始只有一个btn2元素,你通过某种方法又加了一个btn2元素,这个元素也可以点击,可以无限添加btn2。
on() 绑定多个事件,事件类型之间 空格间隔
$("button").on("click contextmenu",function () {
alert("s's's");
})
阻止默认事件:e.preventDefault();
阻止冒泡事件:e.stopPropagation();
.off() 解除事件绑定
参数1 :必需 符合要解除目标的 事件类型 事件命名
参数2 :可选 指定哪些后代元素可以触发绑定的事件
参数3 :可选。规定当事件发生时运行的函数。
eg:$('input').off('click.abc'); //移除 命名为abc的click 事件
jqery事件委托
$("ul").on("click",".list",function (ev) {
var target = $(ev.target);
target.css("background-color","red");
})
适用性:
1. focus(), blur() 这两个方法本身没有事件冒泡,所以无法使用事件委托
2. mouseover, mouseout这两个事件的触发率较高,经常需要计算,所以偶尔会出现卡顿。偏差
3. 比较适用的有: click mousedown mouseup keydown keyup keypress