jq 历史中绑定事件的三种方式:
1.on/off 2. bind/unbind 3. live/delegete
jq1.7之后都用on/off
.on
参数1:事件类型(必填)
可以同时绑定多个事件,但限于事件功能相同时
事件功能不相同时,可以采用链式编程,在该方法的后面续写
参数2:具体执行功能子元素(可选)
参数3:传递到函数内部的数据(有些类似实参,可选)
参数4:具体功能(必填)
$(".box").on("click mouseout",".min_box",{sum:20},function (e) {
console.log("天气不错");
//通过参数3 传递进来的参数 我们通过 event.data 来获取
console.log(e.data.sum);
});
通过on绑定事件和直接通过事件名绑定 的区别:
- 通过事件名绑定 是在页面加载后,获取的所有类名为btn1的元素,然后绑定了这个click事件,你要是通过其他操作再生成一个btn1元素,它就没有click这个事件;
- 而on()事件起到了监听的效果,可以实现动态html元素绑定,比如一开始只有一个li元素,你通过某种方法又加了一个li元素,这个元素也可以点击,可以无限添加li。
on() 绑定多个事件事件类型之间 空间 间隔
$("button").on("click contextmenu",function () {
alert("我来啦");
})
读取和使用鼠标状态
1 = 鼠标左键 left; 2 = 鼠标中键; 3 = 鼠标右键
return false;//阻止链接跳转
return true;返回正常的处理结果.
return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为.
return;把控制权返回给页面.
$('#down').mousedown(function(e){
if(3 == e.which){
alert('这是右键单击事件');
}else if(1 == e.which){
alert('这是左键单击事件');
}
})
使用对象的方式 绑定多个事件
$("button").on({
mousedown:function () {
alert("按下");
},
mouseup:function (){
alert("抬起")
}
})
阻止冒泡和默认行为
$("button").on('click',function (e) {
//阻止默认事件
e.preventDefault();
//阻止冒泡事件
e.stopPropagation();
})