事件
页面载入
ready(fn) //当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
$(document).ready(function(){}) -----------> $(function(){})
事件处理
$("").on(eve,[selector],[data],fn) // 在选择元素上绑定一个或多个事件的事件处理函数。
// .on的selector参数是筛选出调用.on方法的dom元素的指定子元素,如:
// $('ul').on('click', 'li', function(){console.log('click');})就是筛选出ul下的li给其绑定
// click事件;
[selector]参数的好处:
好处在于.on方法为动态添加的元素也能绑上指定事件;如:
//$('ul li').on('click', function(){console.log('click');})的绑定方式和
//$('ul li').bind('click', function(){console.log('click');})一样;我通过js给ul添加了一个
//li:$('ul').append('<li>js new li<li>');这个新加的li是不会被绑上click事件的
//但是用$('ul').on('click', 'li', function(){console.log('click');}方式绑定,然后动态添加
//li:$('ul').append('<li>js new li<li>');这个新生成的li被绑上了click事件
[data]参数的调用:
function myHandler(event) {
alert(event.data.foo);
}
$("li").on("click", {foo: "bar"}, myHandler)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
</ul>
<button>add</button>
<script src="jquery-3.3.1.js"></script>
<script>
// 事件绑定
// let eles=document.getElementsByTagName('li');
// for (let i=0; i<eles.length; i++) {
// eles[i].onclick=function () {
// alert('js');
// };
// }; // js绑定方式
// 简写
// $('ul li').click(function () {
// alert('jquery');
// });
// 全写
// $('ul li').bind('click',function () {
// alert('jquery');
// });
// 解除
// $('ul li').unbind('click');
// 事件委托on()
$('button').click(function () {
let $ele=$('<li>');
let len=$('ul li').length;
$ele.html((len+1)*111);
$('ul').append($ele);
});
// $('ul li').click(function () {
// alert('hello');
// }); // 新添加的li标签没有点击事件
$('ul').on('click','li',function(){
alert('hello');
}); // 新添加的li标签也有了点击事件
</script>
</body>
</html>