💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #div1 {margin: 200px;} </style> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> $(function() { $('#div1').click(function(ev){ alert(ev.pageY); //鼠标的y坐标 //ev.pageX和ev.pageY始终是相对于整个页面的 alert(ev.clientY); //鼠标的y坐标 //ev.clientX和ev.clientY始终是相对于可视区的 }) }) </script> </head> <body style="height: 2000px;"> <div id="div1">aaaaaa</div> </body> </html> ~~~ *** ### which键盘键值 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> //ev.which是键盘的键值 $(function() { $(document).keydown(function(ev){ alert(ev.which); //页面上按下按键,弹出键盘键值 //alert(ev.keyCode); //也可以弹出键盘键值 //alert(ev.ctrlKey); //可以检测是否ctrl键是按下的 }) }) </script> </head> <body> </body> </html> ~~~ ### 事件源 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> $(function() { //ev.target 当前目标元素,也就是事件源 $(document).click(function(ev){ //alert(this); //这个this总是指向document alert(ev.target); //如果点击到a上,那么弹出的就是#div1这个元素 }) }) </script> </head> <body> <div id="div1">aaaaaa</div> </body> </html> ~~~ ### 阻止冒泡 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> $(function() { $(document).click(function(){ alert(123); }) $('#div1').click(function(ev){ ev.stopPropagation(); //阻止了#div1的事件冒泡,那么点击#div1就不会再弹出123了 }) }) </script> </head> <body> <div id="div1">aaaaaa</div> </body> </html> ~~~ ### 阻止默认事件 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> $(function() { //ev.preventDefault():阻止默认事件 $(document).contextmenu(function(ev){ //点击右键就不会弹出默认右键菜单了 ev.preventDefault(); }) }) </script> </head> <body> <div id="div1">aaaaaa</div> </body> </html> ~~~ ### return false既阻止冒泡,又阻止默认 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> //在事件函数中写return false代表:既阻止默认事件又阻止冒泡 $(function(){ $(document).contextmenu(function(ev){ //代码 return false; }) }) </script> </head> <body> <div id="div1">aaaaaa</div> </body> </html> ~~~ ### 拖拽 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; } #div1 { width: 100px; height: 100px; background: red; position: absolute; left: 100px; top: 100px; } </style> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> $(function() { var disX = 0; var disY = 0; var $div = $('#div1'); $div.on('mousedown', function(ev){ disX = ev.pageX - $(this).offset().left; disY = ev.pageY - $(this).offset().top; $(document).on('mousemove', function(ev){ $div.css('left', ev.pageX - disX); $div.css('top', ev.pageY - disY); }) $(document).on('mouseup', function(){ $(this).off(); }) return false; }) }) </script> </head> <body> <div id="div1">div</div> </body> </html> ~~~ ### 主动触发 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>事件的命名空间</title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> // trigger(): 主动触发 $(function() { $('#input1').click(function() { var $li = $('<li>' + $('#input2').val() + '</li>'); $('ul').append($li); }) $('#input2').keydown(function(ev) { if(ev.which == 13) { $('#input1').trigger('click'); //点击回车的时候,就主动触发#input1的click事件 //$('#input1').click(); 这种写法就相当于上面的那种写法 } }) }) </script> </head> <body> <input id="input1" type="button" value="添加"><input id="input2" type="text"> <ul> <li>11111</li> <li>11111</li> <li>11111</li> <li>11111</li> <li>11111</li> </ul> </body> </html> ~~~ ### 登录弹窗效果 ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>事件的命名空间</title> <style> #box{ width:400px; height:400px; border:1px solid #000; text-align: center; position:relative; margin:150px auto; display: none; } #box span{ position:absolute; right:0; font-size: 26px; border:1px solid #000; padding: 0 8px; border-top:0; border-right:0; } #box #p1{ position:absolute; top:100px; left:80px; } #box #p2{ position:absolute; top:200px; left:80px; } </style> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script> // trigger(): 主动触发 $(function() { $('#input1').click(function(){ $('#box').css('display','block'); return false; }) $('#box').click(function(ev){ ev.stopPropagation();//阻止冒泡 }) $('#box').find('span').click(function(){ $('#box').css('display','none'); }) $(document).on('click',function(){ $('#box').find('span').trigger('click'); }) }) </script> </head> <body> <input id="input1" type="button" value="登录"> <div id="box"> <span>x</span> <p id="p1">用户名:<input type="text" /></p> <p id="p2">密码:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" /></p> </div> </body> </html> ~~~