<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <input type="button" id="btn" value="点击"> <ul> <li>link1</li> <li>link2</li> <li>link3</li> <li>link4</li> <li>link5</li> <li>link6</li> </ul> </body> <script src="../jquery.js"></script> <script> // 赋值:不允许重复绑定,没有兼容。 // 监听:可以重复绑定,有兼容 $("#btn").click(fn) function fn(){ console.log("hello") } $("#btn").click(function(){ console.log(2) }) // 总结:jq中只有监听式绑定事件,没有赋值式 // 注意:jq中只有监听式绑定事件 // 1.事件名绑定 // 元素.事件名(函数) $("#btn").mousedown(function(){ console.log(1) }) // 2.on绑定,可做事件委托 $("#btn").on("click.a",function(){ console.log(1) }) $("#btn").on("click.b",function(){ console.log(2) }) // off删除on绑定的方法 $("#btn").off("click.a") // 事件委托,click后面写上委托的元素 $("ul").on("click","li",function(){ console.log(this) }) // 3.bind绑定,不能时间委托 $("#btn").bind("click.a",function(){ console.log(1) }); $("#btn").bind("click.b",function(){ console.log(2) }); // unbind删除bind绑定的方法 $("#btn").unbind("click.a") // 4.one绑定,执行一次之后就结束这个事件 $("#btn").one("click",function(){ console.log(1) }) // 5.hover绑定:没有事件冒泡,第一个函数是进入,第二个函数是出来。只写一个就只有进入事件 // mouseover // mouseout // 没有事件冒泡 // mouseenter // mouseleave $("#btn").hover(function(){ console.log("进入") },function(){ console.log("离开") }) // 6.模拟事件执行 //每隔一秒会console.log一个1 setInterval(() => { // 有事件冒泡 $("#btn").trigger("click") // 没有事件冒泡 // $("#btn").triggerHandler("click") }, 1000); </script> </html>
jq的事件对象
点击按钮,会出现点击的这个事件的全部信息 $("#btn").click(fn) function fn(){ console.log(event) //MouseEvent {isTrusted: true, screenX: 30, screenY: 91, clientX: 30, clientY: 20, …} }