当用户将鼠标指针移到某个元素上时,就会触发 mouseover 事件。当用户将鼠标指针移出某个元素时,就会触发 mouseout 事件。mouseover 和 mouseout 平常都是形影不离的。
mouseover 和 mouseout 分别用于控制鼠标指针“移入”和“移出”这两种状态。例如,在下拉菜单导航中,鼠标指针移入会显示二级导航,鼠标指针移出则会收起二级导航。
举例:移入和移出
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title></title>
- <script src="js/jquery-1.12.4.min.js"></script>
- <script>
- $(function () {
- $("div").mouseover(function(){
- $(this).css("color", "red");
- })
- $("div").mouseout(function () {
- $(this).css("color", "black");
- })
- })
- </script>
- </head>
- <body>
- <div>城东书院</div>
- </body>
- </html>
预览效果如图 1 所示。
这里的$(this) 指的其实就是触发当前事件的元素,也就是 div 元素。在这个例子中,$(this)等价于$("div")。$(this)的使用是非常复杂的,这里我们只是让初学者熟悉一下,后面再给小伙伴们详细讲解。
上面这个例子虽然简单,但是方法已经教给大家了。大家可以尝试使用 mouseover 和 mouseout 这两个事件来设计下拉菜单效果。
举例:链式调用
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title></title>
- <script src="js/jquery-1.12.4.min.js"></script>
- <script>
- $(function () {
- $("div").mouseover(function(){
- $(this).css("color", "red");
- }).mouseout(function () {
- $(this).css("color", "black");
- })
- })
- </script>
- </head>
- <body>
- <div>城东书院</div>
- </body>
- </html>
预览效果如图 2 所示。
分析:
- $("div").mouseover(function(){
- $(this).css("color", "red");
- }).mouseout(function () {
- $(this).css("color", "black");
- })
上面的代码其实等价于:
- $("div").mouseover(function(){
- $(this).css("color", "red");
- })
- $("div").mouseout(function () {
- $(this).css("color", "black");
- })
在 jQuery 中,如果对同一个对象进行多种操作,则可以使用链式调用的语法。链式调用是 jQuery 中的经典语法之一,不仅可以节省代码量,还可以提高代码的性能和效率。