7. jquery事件 jquery新浪网站下拉菜单案例

133 阅读1分钟

1.事件 jQuery 事件是对 JavaScript 事件的封装,常用事件分类如下:

1.1 window事件

1.2鼠标事件

方法             | 描述                           | 执行时机  |

| -------------- | ---------------------------- | ----- | | click( ) | 触发或将函数绑定到指定元素的 click 事件 | 单击鼠标时 | | mouseover( ) | 触发或将函数绑定到指定元素的 mouse over 事件 | 鼠标移过时 | | mouseout( ) | 触发或将函数绑定到指定元素的 mouse out 事件 | 鼠标移出时

1.3 键盘事件

image.png 三个事件的执行顺序 keydown -- keypress -- keyup
keydown 按键按下的时候触发 能识别功能键 比如 ctrl shift 左右箭头啊

$(function(){
	 $(document).keydown(function(){
	 alert(11);
	 } )
} );

这是一个按下判断是否提交的案例

$(function(){
				 $(document).keydown(function(even){
					 // 案例1.判断输入的是否字字母A  65
					 if (even.keyCode == 65) {
					 	alert('输入的是a');
					 } else{
					 	alert('no');
					 }
					
				 } )
			} );

1.4 表单事件

image.png

  • 复合事件是多个事件的组合

    • 鼠标光标悬停
    • 鼠标连续点击

新浪网站下拉菜单案例,这是一个非常经典的案例,如果用原生JS比较麻烦,用jquery后就简单很多。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>选择器案例</title>
    <script src="jquery.min.js"></script>
    <!-- 样式 -->
    <style>
    * {
            margin: 0;
            padding: 0;
        }
        
        li {
            list-style-type: none;
        }
        
        a {
            text-decoration: none;
            font-size: 14px;
        }
        
        .nav {
            margin: 100px;
        }
        
        .nav>li {
            position: relative;
            float: left;
            width: 80px;
            height: 41px;
            text-align: center;
        }
        
        .nav li a {
            display: block;
            width: 100%;
            height: 100%;
            line-height: 41px;
            color: #333;
        }
        
        .nav>li>a:hover {
            background-color: #eee;
        }
        
        .nav ul {
            display: none;
            position: absolute;
            top: 41px;
            left: 0;
            width: 100%;
            border-left: 1px solid #FECC5B;
            border-right: 1px solid #FECC5B;
        }
        
        .nav ul li {
            border-bottom: 1px solid #FECC5B;
        }
        
        .nav ul li a:hover {
            background-color: #FFF5DA;
        }


    </style>
</head>
<body>
  <ul class="nav">
    <li>
        <a href="#">微博</a>
        <ul>
            <li>
                <a href="">私信</a>
            </li>
            <li>
                <a href="">评论</a>
            </li>
            <li>
                <a href="">@我</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="#">微博</a>
        <ul>
            <li>
                <a href="">私信</a>
            </li>
            <li>
                <a href="">评论</a>
            </li>
            <li>
                <a href="">@我</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="#">微博</a>
        <ul>
            <li>
                <a href="">私信</a>
            </li>
            <li>
                <a href="">评论</a>
            </li>
            <li>
                <a href="">@我</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="#">微博</a>
        <ul>
            <li>
                <a href="">私信</a>
            </li>
            <li>
                <a href="">评论</a>
            </li>
            <li>
                <a href="">@我</a>
            </li>
        </ul>
    </li>
</ul>

   <script>

    //  js 操作文件
    $(function(){
      // 1.如果鼠标经过过ul >li   就显示
      $('ul>li').mouseenter(function(){
            $(this).children('ul').show()   ;  // jquery用this ul显示
      });
       // 1.如果鼠标离开过ul >li   就隐藏
       $('ul>li').mouseout(function(){
            $(this).children('ul').hide()   ;  // jquery用this ul隐藏

  
  }) ;
}) 
   </script>
    
</body>
</html>