当前位置: 移动技术网 > IT编程>开发语言>JavaScript > jQuery库的介绍与使用

jQuery库的介绍与使用

2020年07月17日  | 移动技术网IT编程  | 我要评论

1、jQuery库介绍

  • jQuery是一个JavaScript库(框架),它通过封装原生的JavaScript函数得到一整套定义好的方法。它的作者是John Resig,于2006年创建的一个开源项目,随着越来越多开发者的加入,jQuery已经集成了JavaScript、 CSS、 DOM和Ajax于一体的强大功能。它可以用最少的代码,完成更多复杂而困难的功能,从而得到了开发者的青睐。
  • 在线的可以访问:http://t.mb5u.com/jquery/
  • http://www.runoob.com/前端知识的学习网站
  • 最新的文档,英文版的:http://api.jquery.com/
  • jQuery两种文件解释:

这里是引用

2、jQuery优势

  • jQuery 作为 JavaScript 封装的库,他的目的就是为了简化开发者使用 JavaScript。
  • 主要功能有以下几点:

1.像 CSS 那样访问和操作 DOM;
2.修改 CSS 控制页面外观;
3.简化 JavaScript 代码操作;
4.事件处理更加容易;
5.各种动画效果使用方便;
6.让 Ajax 技术更加完美 异步加载;
7.基于 jQuery 有大量插件;
8.自行扩展功能插件:jQuery 最大的优势,就是特别的方便。比如模仿 CSS 获取 DOM,比原生的 JavaScript要方便太多。并且在多个 CSS 设置上的集中处理非常舒服,而最常用的 CSS 功能又封装到单独的方法,感觉非常有心。最重要的是 jQuery 的代码兼容性非常好,你不需要总是头疼;

3、jQuery的使用

  • 搭建环境
    1、首先,下载jQuery库文件;
    2、引入jQuery库文件:<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>,如果你不想下载,也可以在有网络连接的情况下使用引用网上的链接;
    3、之所以可以使用链接,是因为浏览器有缓存;

4、jQuery入门

  • 入门代码:有自己的一套语法规则;
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 引入jQuery库文件 -->
		<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				$('button').click(function(){
					alert("Hello jQuery");
				});
			});
		</script>
	</head>
	<body>
		<button type="button">一个按钮</button>
	</body>
</html>

在这里插入图片描述

  • 代码风格
    1、在jQuery程序中,不管是页面元素的选择、内置的功能函数,都是美元符号$来起始的,而 这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元素选择或执行功能函数的时候可以这么写:
$(function () {});	 //执行一个匿名函数
$('#box');	 //进行执行的ID元素选择
$('#box').css('color', 'red'); 	//执行功能函数

2、由于 $本身就是jQuery对象的缩写形式,那么也就是说上面的三段代码也可以写成如下形式:

jQuery(function () {});
jQuery('#box');
jQuery('#box').css('color', 'red');

3、值得一提的是,执行了.css()这个功能函数后,最终返回的还是jQuery对象,那么也就是说,jQuery的代码模式是采用的连缀方式,可以不停的连续调用功能函数。

$('#box').css('color', 'red').css('font-size', '50px'); //连缀

4、jQuery中代码注释和JavaScript是保持一致的,有两种最常用的注释:单行使用“//...” ,多行使用“/* ... */”

5、jQuery页面加载方式

  • 我们在之前的代码一直在使用$(function () {});这段代码进行首尾包裹,那么为什么必须要包裹这段代码呢?
  • 原因是我们jQuery库文件是在body元素之前加载的,我们必须等待所有的DOM元素加载后,延迟支持DOM操作,否则就无法获取到。在延迟等待加载,JavaScript提供了一个事件为load,方法如下:
window.onload = function () {}; //JavaScript等待加载
$(document).ready(function () {所有代码都放在这}); //jQuery等待加载
  • JS页面加载的时候,比如你有很多图片、视频加载比较慢,等到这些元素都加载完成,你才能执行;而jQuery页面加载是等你这个结构父标签、子标签啊,加载结束就可以完成,也就是它的加载相对比较快一些;

  • 针对上面的写法,有个简写形式:

$(document).ready(function(){

});
加载的优点,只需要等待网页中的DOM结构加载完毕,就能执行包裹的代码。
简写方案:
$(function () {
	alert("加载了");
});

6、原生的DOM对象和jQuery对象的互转

  • jQuery 对象虽然是 jQuery 库独有的对象,但它也是通过 JavaScript 进行封装而来的。 我们可以直接输出来得到它的信息。
alert($); //jQuery 对象方法内部
alert($()); //jQuery 对象返回的对象,还是 jQuery
alert($('#box')); //包裹 ID 元素返回对象,还是 jQuery
  • 从上面三组代码我们发现:只要使用了包裹后,最终返回的都是 jQuery 对象。这样的好处显而易见,就是可以连缀处理。但有时,我们也需要返回原生的 DOM 对象,比如:
alert(document.getElementById('box')); //[object HTMLDivElement]
  • jQuery 想要达到获取原生的 DOM 对象,可以这么处理:
alert($('#box').get(0)); //ID 元素的第一个原生 DOM
  • 从上面 get(0),这里的索引看出,jQuery 是可以进行批量处理 DOM 的;
  • 有的时候,我们需要操作原生的JS对象,有的时候则需要jQuery对象,它们之间的互相转换为:

原生的DOM对象与jQuery对象之间互转:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				//原生的JS对象
				var btn = document.getElementById("btn");
				//使用jQuery这个$符号包裹一下原生的JS对象,原生的DOM对象和jQuery对象的转换
				$(btn).css('background','red');

				//jQuery对象
				var btn2 = $("#btn");
				//jQuery对象转为原生的DOM对象,调用get(),里面传入一个索引
				var jObj = btn2.get(0);
				//使用这个原生的对象
				jObj.style.width = "100px";

			});
		</script>
	</head>
	<body>
		<button type="button" id="btn">一个按钮</button>
	</body>
</html>

7、jQuery的选择器

  • 常规选择器
    在这里插入图片描述
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				//jQuery选择一个或者多个标签,采用的是CSS选择器的写法
				
				$('h1').css('color','red');
				
				//如果你仅仅只想设置第一个h1标签的颜色,使用eq()
				$('h1').eq(0).css('color','blue');
			});
		</script>
	</head>
	<body>
		<h1>aaa</h1>
		<h1>aaa</h1>
		<h1>aaa</h1>
	</body>
</html>
  • 进阶选择器
    在这里插入图片描述
  • 高级选择器
    在这里插入图片描述

针对高级选择器,如果你不想使用,他有对应的方法,可以使用;

取代选择器的方法:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title></title>
		<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				//$('div p span').css('color','red');
				//等价于下面的代码
				$('div').find('p').find('span').css('color','red');
				//一层一层往下找
				
				//选中全部的ul
				//$('ul>li').css('color','red');
				//等价于下面的代码
				$('ul').children('li').css('color','yellow');
				
				//如何选中第三个h1
				$('h1').eq(0).next('h1').next('h1');
			});
		</script>
	</head>
	<body>
		<div id="">
			<p>
				<span>abc</span>
			</p>
		</div>
		
		<ul>
			<li>bbbb</li>
			<li>bbbb</li>
			<li>bbbb</li>
			<li>bbbb</li>
			<li>bbbb</li>
		</ul>
		
		<h1>ccc</h1>
		<h1>ccc</h1>
		<h1>ccc</h1>
		<h1>ccc</h1>
	</body>
</html>

1.选定同级元素的上一个(prev) 或 上面所有元素(prevAll)

$('#box').prev('p').css('color', 'red'); //同级上一个元素
$('#box').prevAll('p').css('color', 'red'); //同级所有上面的元素
  1. nextUntil()和 prevUnitl()方法是选定同级的下面或上面的所有节点,选定非指定的所有 元素,一旦遇到指定的元素就停止选定。
$('#box').prevUntil('p').css('color', 'red'); //同级上非指定元素选定,遇到则停止
$('#box').nextUntil('p').css('color', 'red'); //同级下非指定元素选定,遇到则停止
  1. 选定同级元素的 上下所有元素 siblings()方法正好集成了 prevAll()和 nextAll()两个功能的效果,及上下相邻的所有元素,进行选定:
$('#box').siblings('p').css('color', 'red'); //同级上下所有元素选定
//等价于下面:
$('#box').prevAll('p').css('color', 'red'); //同级上所有元素选定
$('#box').nextAll('p').css('color', 'red'); //同级下所有元素选定
  • 属性选择器
    在这里插入图片描述

  • 过滤选择器
    在这里插入图片描述

  • DOM是一种文档对象模型。方便开发者对HTML 结构元素内容进行展示和修改。在 JavaScript 中,DOM 不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性、扩展性。在 jQuery 中,已经将最常用的 DOM 操作方法进行了有效封装,并且不需要考虑浏览器的兼容性。

  • 获取与设置
    在这里插入图片描述
    代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            var text=$('div').html(); //innerHTML
            //获取值
            alert(text);

            $('div').html("<h1>呵呵</h1>");
            //设置值

            //获取文本中的值
            var text1=$('h1').text();//innerText
            alert(text1);

            //设置文本中的值
            $('h1').text('ccccc');

            //获取表单中的值
            var text2=$('input').val();
            alert(text2);

            //设置表单中的值
            $('input').val('李四');

        });
    </script>
</head>
<body>
    <div>
        <span>

        </span>
    </div>

    <input type="text" placeholder="请输入内容:" name="username" value="zhangsan">
</body>
</html>

8、jQuery的属性操作

  • 除了对元素内容进行设置和获取,通过 jQuery 也可以对元素本身的属性进行操作,包括获取属性的属性值、设置属性的属性值,并且可以删除掉属性;
  • 方法:
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .mycss{
            color: red;
            font-size: 200px;
        }
    </style>
    <script src="./js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            //获取某个元素的属性值
            var text=$('div').attr('id');
            alert(text);

            //如何给div设置属性mycss
            $('div').attr('class','mycss');

            //移除属性
            $('div').removeAttr('class');
        });
    </script>
</head>
<body>
    <div id="mydiv" class="mycss">
        abc
    </div>
</body>
</html>

设置或移除class属性:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .myclass{
            width: 300px;
            height: 800px;
            color: red;
            border: 1px black solid;
        }
    </style>
    <script src="./js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {

            //添加类属性
            $('div').addClass('myclass');

            //移除类属性
            $('div').removeClass('myclass');
        });
    </script>
</head>
<body>
    <div>
        abc
    </div>
</body>
</html>

切换class属性值:

在这里插入代码片

css样式的操作

元素样式操作包括了直接设置 CSS 样式、增加 CSS 类别、类别切换、删除类别这几种操作方法。而在整个 jQuery 使用频率上来看,CSS 样式的操作也是极高的,所以需要重点掌握。

在这里插入图片描述
在这里插入图片描述

代码示例1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
</head>
<body>
    <div>
        abc
    </div>

    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            //在jQuery中,要设置属性值,可以去掉横杠变大写也可以直接写横杠
            //但是原生的JS中不允许这样,他只能去横杠,使用大写字母
            //$('div').css('color','red').css('fontSize','100px');

            //这样写比较麻烦,可不可以一次设置完成

            //设置一个JSON对象
            var jsonObj={
                'color':'red',
                'font-size':'100px',
                'background':'blue'
            };

            //直接传递JSON对象
            $('div').css(jsonObj);
        });
    </script>
</body>
</html>

代码示例2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .myclass{
            width: 100px;
            height: 100px;
            background-color: blueviolet;
        }
        .myclass2{
            width: 200px;
            height: 200px;
            background-color: cadetblue;
        }
    </style>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $('div').click(function (e) { 
                //因为我们现在要对jquery进行操作,如果你直接写一个this,你选中的还是原生的DOM对象,因为我们要对jquery对象进行操作,因此必须要先包装这个this
                //this.$(selector).toggle();

                $(this).toggleClass('myclass2');
            });

            $('h1').width('200px').css('color','red');
        });
    </script>
</head>
<body>
    <div class="myclass"></div>
    <h1>这是一行文字</h1>
</body>
</html>

9、jQuery的节点操作

  • DOM 中有一个非常重要的功能,就是节点模型,也就是 DOM 中的“M” 。页面中的元素结构就是通过这种节点模型来互相对应着的,我们只需要通过这些节点关系,可以创建、插入、替换、克隆、删除等等一些列的元素操作。
  • 为了使页面更加智能化,有时我们想动态的在 html 结构页面添加一个元素标签,那么 在插入之前首先要做的动作就是:创建节点。

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            //现在我想使用jQuery代码给body中设置一个标签进去

            //封装一个idv对象
            var mydiv=$('<div>abc</div>');
            //获取Body对象
            var body=$('body').append(mydiv);
        });
    </script>
</head>
<body>
    
</body>
</html>
  • 在创建节点的过程中,其实我们已经演示怎么通过.append()方法来插入一个节点。但除了这个方法之余呢,jQuery 提供了其他几个方法来插入节点。
    在这里插入图片描述
    在这里插入图片描述
    代码示例1:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            //现在我想使用jQuery代码给body中设置一个标签进去

            //封装一个div对象
            var mydiv=$('<div>abc</div>');
            //获取Body对象
            var body=$('body').append(mydiv);

            //我现在把这个h1设置进入div里面,最终他呈现的位置是:h2之后与之并列
            $('h1').appendTo('div');

            //在ul之后插入元素
            $('ul').after('<h2>bbbbbbbbbb</h2>');

            //将span标签移到div后面去
            $('span').insertAfter("#mydiv2");
        });
    </script>
</head>
<body>
    <h1>一行标题</h1>
    <div id="mydiv">
        <h2>22222222222</h2>
    </div>

   <ul>
       <li>abc</li>
       <li>abc</li>
       <li>abc</li>
       <li>abc</li>
       <li>abc</li>
   </ul>

   <span>这是span标签</span>

   <div id="mydiv2">nihao</div>
</body>
</html>

在这里插入图片描述
代码示例2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            //包裹方式1:如何在span标签外面包裹一层
            $('span').wrap('<div></div>');

            //移除包裹
            $('span').unwrap();

            //包裹方式2:或者你可以创建一个div元素,然后将这个原生的DOM对象包裹在span标签外面
            var mydiv = document.createElement('div');
            $('span').wrap(mydiv);
        });
    </script>
</head>
<body>
    <span>
        abc
    </span>
</body>
</html>

10、jQuery事件绑定

  • 在 JavaScript 课程的学习中, 我们掌握了很多使用的事件, 常用的事件有: click、 dblclick、mousedown、mouseup、mousemove、 mouseover、mouseout、change、 select、 submit、keydown、keypress、keyup、blur、focus、load、resize、scroll、error。

  • jQuery 通过.bind()方法来为元素绑定这些事件。 可以传递三个参数: bind(type, [data], fn),type 表示一个或多个类型的事件名字符串;[data]是可选的,作为 event.data 属性值传递一个额外的数据,这个数据是一个字符串、一个数字、一个数组或一个对象;fn 表示绑定到指定元素的处理函数。

绑定事件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $('button').bind('click', function () {
                alert("弹框");
            });
        });
    </script>
</head>
<body>
    <button>一个按钮</button>
</body>
</html>

如何一次绑定多个事件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            // $('button').bind('click', function () {
            //     alert("弹框");
            // });

            // $('button').bind('mouseover', function () {
            //     $(this).css('background','red');
            // });

            //如果觉得这样写比较麻烦,可以连缀着写
            $('button').bind('click',function(){
                alert("弹框");
            }).bind('mouseover',function(){
                $(this).css('background','red');
            }).bind('mouseout',function(){
                $(this).css('background','yellow');
            });
        });
    </script>
</head>
<body>
    <button>一个按钮</button>
</body>
</html>

解绑事件1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            // $('button').bind('click', function () {
            //     alert("弹框");
            // });

            // $('button').bind('mouseover', function () {
            //     $(this).css('background','red');
            // });

            //如果觉得这样写比较麻烦,可以连缀着写
            $('button').bind('click',function(){
                alert("弹框");
            }).bind('mouseover',function(){
                $(this).css('background','red');
            }).bind('mouseout',function(){
                $(this).css('background','yellow');
            });


            //如何解绑事件
            //如果什么都不屑,解绑所有事件
            $('button').unbind('click');
        });
    </script>
</head>
<body>
    <button>一个按钮</button>
</body>
</html>

解绑事件2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            //绑定多个单击事件
            $('button').bind('click.abc',function(){
                alert('第一次弹框');
            }).bind('click.xyz',function(){
                alert('第二次弹框');
            });

            //如果只想移除第一个单击事件,可以给第一个单击事件起个别名,通过这个别名解绑事件
            $('button').unbind('click.abc');
        });
    </script>
</head>
<body>
    <button>一个按钮</button>
</body>
</html>

事件的简写:

为了使开发者更加方便的绑定事件,jQuery 封装了常用的事件以便节约更多的代码。 我们称它为简写事件。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $('button').click(function (e) { 
                e.preventDefault();
            }).mouseover(function(){}).mouseout(function(){});
        });
    </script>
</head>
<body>
    <button>一个按钮</button>
</body>
</html>

复合事件:

jQuery 提供了许多最常用的事件效果,组合一些功能实现了一些复合事件,比如切换功 能、智能加载等;

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.3.1.js"></script>

    <script>
        $(document).ready(function () {
            // $('button').click(function (e) { 
            //     e.preventDefault();
            // }).mouseover(function(){}).mouseout(function(){});

            //他把移入移出事件看作是一个动作
            $(selector).hover(function () {
                    // over
                    alert("移出来");
                }, function () {
                    // out
                    alert("移进来")
                }
            );
        });
    </script>
</head>
<body>
    
</body>
</html>

注意要把原生的JS对象转为jQuery对象;

事件对象

事件对象就是 event 对象,通过处理函数默认传递接受。之前处理函数的 e 就是 event事件对象,event 对象有很多可用的属性和方法;

在这里插入图片描述

事件之冒泡和默认行为

高级事件

浏览器一打开自动触发我们绑定的事件

Trigger 传递数据,alert("取出trigger传过来的数据"+data1+"和"+data2[0]+"和"+data3.name);
}).trigger('click',['abc',[2,3],{name:'hello'}])//注意多个数据用[ ] 括起来,data1,data2,data3 指的就是[ ]中的数据;

那么bind在绑定事件的时候也能传递数据,这里要跟trigger传递的数据区分一下,如果是bind传递的数据我们用事件对象e中的data属性取数据;

$('button').bind('click',{age:'23'},function(e,data1,data2,data3) {
alert("取出trigger传过来的数据"+data1+"和"+data2[0]+"和"+data3.name+"和bind中传递的数据要用事件对象e中的data属性去取"+e.data.age);
}).trigger('click',['abc',[2,3],{name:'hello'}]);

高级事件之自定义事件

$('button').bind('myEvent',function(){

           alert('自定义事件');

}).trigger('myEvent');

高级事件之简写事件

  • .trigger()方法提供了简写方案,只要想让某个事件执行模拟用户行为,直接再调用一个空的同名事件即可。
$('button').bind('click', function() {
     alert("点击了");
}).trigger('click');
//上面的可以简写为如下的:
$('input').click(function () {
	alert('我的第一次点击来自模拟!');}).click(); 
//空的 click()执行的是 trigger()
  • 这种便捷的方法,jQuery 几乎个所有常用的事件都提供了。
blur focusin mousedown resize
change focusout mousenter scroll
click keydown mouseleave select
dblclick keypress mousemove submit
error keyup mouseout unload
focus load mouseover
  • 注意为了语义性更加好,一般不推荐简写方案,当然你要使用也是没有问题的

高级事件之triggerHandler()

  • jQuery 还提供了另外一个模拟用户行为的方法:.triggerHandler();这个方法的使用和.trigger()方法一样。
$('input').click(function () {
       alert('我的第一次点击来自模拟!');}).triggerHandler('click');
  • 在常规的使用情况下,两者几乎没有区别,都是模拟用户行为,也可以可以传递额外参数。但在某些特殊情况下,就产生了差异:

1、triggerHandler()方法并不会触发事件的默认行为,而.trigger()会。
2、triggerHandler()方法只会影响第一个匹配到的元素,而.trigger()会影响所有。
3、triggerHandler()方法会返回当前事件执行的返回值,如果没有返回值,则返回undefined;而.trigger()则返回当前包含事件触发元素的 jQuery 对象(方便链式连缀调用)。
4、trigger()在创建事件的时候,会冒泡。但这种冒泡是自定义事件才能体现出来,是jQuery 扩展于 DOM 的机制,并非 DOM 特性。而.triggerHandler()不会冒泡。

11、jQuery动画

1、显示隐藏

  • jQuery 中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $('button').eq(0).click(function(){
                //显示
                //参数可以表示时常
                $('div').show(1000);
            });
            $('button').eq(1).click(function(){
                //隐藏
                $('div').hide(1000);
            });
            $('button').eq(2).click(function(){
                //隐藏
                $('div').toggle(1000);
            });
        });
    </script>
</head>
<body>
    <div></div>
    <button>显示</button>
    <button>隐藏</button>
    <button>切换</button>
</body>
</html>

2、下拉上卷

jQuery 提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名思义,向上收缩(卷动)和向下展开(滑动)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background: red;
        }
    </style>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $('button').eq(0).click(function(){
                $('div').slideUp(1000);
            });
            $('button').eq(1).click(function(){
                $('div').slideDown(1000);
            });
            $('button').eq(2).click(function(){
                $('div').slideToggle(1000);
            });
        });
    </script>
</head>
<body>
    <div>

    </div>
    <button>上卷</button>
    <button>下拉</button>
    <button>开关</button>
</body>
</html>

3、淡入淡出

jQuery 提供了一组专门用于透明度变化的方法:.fadeIn()和.fadeOut(),分别表示淡入、 淡出,当然还有一个自动切换的方法:.fadeToggle()。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background: red;
        }
    </style>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $('button').eq(0).click(function(){
                $('div').fadeIn(1000);
            });
            $('button').eq(1).click(function(){
                $('div').fadeOut(1000);
            });
            $('button').eq(2).click(function(){
                $('div').fadeToggle(1000);
            });
        });
    </script>
</head>
<body>
    <div>

    </div>
    <button>淡入</button>
    <button>淡出</button>
    <button>切换</button>
</body>
</html>

本文地址:https://blog.csdn.net/weixin_45082647/article/details/107370397

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网