一、jQuery事件绑定语法
jQuery伪数组支持的语法形式
$().事件类型(事件处理函数)
jQuery伪数组不支持的语法形式
$().on( 事件类型 , 事件处理函数 )
代码展示:
<!DOCTYPE html>
<html lang="en">
<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>Document</title>
</head>
<body>
<button>点我一下</button>
<input type="text">
<script src="./jquery.min.js"></script>
<script>
// 支持的语法方式
$('button').click(function(){
console.log(6666)
})
// 不支持的方式
$('input').on('input',function(){
console.log('正在输入');
})
</script>
</body>
</html>
二、jQuery的事件委托
$().on( 事件类型 , '判断条件' , 事件处理函数 )
给 标签中 包含的后代标签 进行判断
符合 判断条件的标签 添加 事件处理函数条件是 html,css 支持的所有语法形式
jQuery获取标签对象的语法形式
代码展示:
<!DOCTYPE html>
<html lang="en">
<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>Document</title>
</head>
<body>
<div class="box">
<div>我是div标签</div>
<p>我是p标签</p>
<h1><span>我是h1里的span标签</span></h1>
</div>
<script src="./jquery.min.js"></script>
<script>
// 事件委托 $().on( 事件类型 , '判断条件' , 事件处理函数 )
$('.box').on("click",'div',() => console.log(1111));
$('.box').on("click",'p',() => console.log(2222));
$('.box').on("click",'h1>span',() => console.log(333));
</script>
</body>
</html>
三、jQuery的特殊语法类型
$().hover( 参数1 , 参数2 );
参数1 鼠标移入的事件处理函数
参数2 鼠标移出的事件处理函数
绑定的事件类型 是
mouseenter 和 mouseleave
<body>
<div>
<span></span>
</div>
<script src="./jquery.min.js"></script>
<script>
// $().hover( 参数1 , 参数2 );
$('div').hover(()=>console.log('鼠标移入了'),() =>console.log('鼠标移出了'))
</script>
</body>
这里注意里面的子元素不会执行该事件。
$().one( 事件类型 , 事件处理函数 );
绑定的事件类型和事件处理函数 只会触发执行一次
<script>
$('div').one('click',() =>console.log('点我干嘛'))
</script>
$().trigger( 事件类型 );
事件的发布
标签指定事件类型的事件处理函数
会 直接重复执行一次
<script>
$('div').one('click',() =>console.log('大聪明点我干嘛'))
$('p').one('click',() =>console.log('码农徐点我干嘛'))
// // 直接执行 指定事件类型的所有事件处理函数
// // 直接将click 事件类型 绑定的所有事件处理函数 都 执行一次
// // 不用 点击触发 直接执行
$('div').trigger('click');
</script>
$(window).ready( function(){} )
$( function(){} ) jQuery的加载事件
当 html所有标签 加载完毕 才会执行 定义的函数程序
例如 img标签 加载完毕 jQuery加载事件就会触发执行
window.addEventListener( 'load' , function(){})
js 的 加载事件当 html所有标签 和 标签内容 加载完毕 才会执行 定义的函数程序
例如 img标签和图片内容 都 加载完毕 window加载事件才会触发执行
代码展示 :
<body>
<script src="./jquery.min.js"></script>
<script>
// 在 html代码之前 执行 js jQuery程序
// 正常情况下 不能获取 html标签对象
console.log( document.querySelector('div') );
console.log( $('div') );
// 使用 js jQuery 的 加载事件
// 可以 让 js jQuery程序 在 html代码执行之后 执行
// 也就是 js jQuery程序 虽然定义在 html代码之前
// 但是 会在html代码之后 执行
// 即使 提前定义 js jQuery程序 也可以正常获取 标签对象
window.addEventListener( 'load' , function(){
// 虽然定义在 html标签之前 但是 会在 html代码执行结束之后 再执行
console.log( document.querySelector('div') );
})
$(window).ready( function(){
console.log($('div'));
})
$(function(){
console.log($('div'));
})
</script>
<div>
<span></span>
</div>
<img src="https://tse1-mm.cn.bing.net/th/id/R-C.f6e5c4b00db64498b0399718be518b77?rik=Dij8YhDHOoeyQg&riu=http%3a%2f%2fwww.pp3.cn%2fuploads%2fallimg%2f2020_09%2f1-20091P91444-1.jpg&ehk=y69EnYHAcza6aKYdzshiNy68OD5iBEp4p9AGBZdpP3o%3d&risl=&pid=ImgRaw&r=0" alt="">
</body>
可以清楚的看到最后一行div输出是在图片加载完成以后。
四、 jQuery的事件删除
$().off()
删除 所有类型的所有事件处理函数
$().off( 事件类型 )
删除 指定 事件类型的 所有 事件处理函数
$().off( 事件类型 , 事件处理函数 )
删除 指定 事件类型的 指定 事件处理函数
只能删除 绑定的函数名称
代码展示:
<body>
<div>
<span></span>
</div>
<script src="./jquery.min.js"></script>
<script>
$('div').click(fun);
function fun(){
console.log("大聪明点我干啥");
}
$('div').hover(()=>console.log('鼠标移入了'),() =>console.log('鼠标移出了'))
// 删除所有事件类型
$('div').off();
// 删除指定事件类型
$('div').off("click");
// 删除 指定 事件类型的 指定 事件处理函数
$('div').off("click",fun);
</script>
</body>
五、jQuery的节点操作
子级节点的添加
父级的结束位置 写入新的子级节点
$(父级标签).append( 节点标签 )
节点标签.appendTo( $(父级标签) )父级的起始位置 写入新的子级节点
$(父级标签).prepend( 节点标签 )
节点标签.prependTo( $(父级标签) )
同级节点的添加
同级标签 之前 写入
$(同级标签).before( 节点标签 )
节点标签.insertBefore( $(同级标签) )同级标签 之后 写入
$(同级标签).after( 节点标签 )
节点标签.insertAfter( $(同级标签) )
节点删除
$().empty()
删除节点内容$().remove()
删除节点本身
代码展示
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script src="./jquery.min.js"></script>
<script>
// 父级结束位置
$('<span>我是span标签</span>').appendTo($('ul'));
// 父级开始位置
($('ul')).prepend($('<p>我是p标签</p>'));
// 同级之后写入
($('ul')).before($('<div>你好我是div</div>'));
// 同级之前写入
$('<h1>你好我是h1</h1>').insertAfter($('ul'));
// 删除ul里面的内容
// $('ul').empty();
// 删除整个ul节点
// $('ul').remove();
</script>
</body>