jQuery学习记录3--参考素材B站李南江老师的jQuery+Ajax视频

write less,do more(写的更少,做的更多)–jQuery官方

十一.jQ的scrollTop方法

作用:该方法可以用来获取和设置当前滚动条滚动的位置

(此处省略设置一个带文本的滚动框)
$(".scroll//文本框的的类名").scrollTop();
//用scrollTop方法获取滚动条的当前位置
$(".scroll//文本框的的类名").scrollTop(300//接收一个数字);
//用scrollTop方法设置滚动条的当前位置

注意:当我们需要获取网页的偏移位(就是网页的滚动条滚了多少)时,我们要考虑浏览器的兼容问题

$("body").scrollTop()+$("html").scrollTop();
//用scrollTop方法获取网页的当前位置
$("body,html").scrollTop(300//接收一个数字);
//用scrollTop方法设置网页的当前位置

十二.jQ的事件绑定的两种方式

1.eventName(fn);

$("button").click(function(){//事件名(函数)
   alert("HELLO LNJ");
});

2.on(eventName,fn);

$("button").on("click",function(){
   alert("HELLO LNJ1");
});

3.两种方式的区别

(1)eventName(fn):这种方式在写eventName时会有提示,编码效率较高,但是仅限于jQ库中已经帮你实现的方法,有局限性。

(2)on(eventName,fn):这种方式在写eventName时会不提示,编码效率较低,但是不限于仅适用jQ库中帮你实现的方法,作用范围广。

两种方法的优点:可以添加相同的或不同类型的事件且不被覆盖。

十三.jQ事件解绑

off()方法

$("button").off();
//如果不传参,就会解绑该标签的所有类型的所有事件

$("button").off("click");
//如果传一个参,就会解绑该标签的指定类型的事件

$("button").off("click",test1);
//如果传两个参,就会解绑该标签的指定类型的指定事件

十四.jQ事件冒泡和默认行为

1.什么是事件冒泡?

原因:当父级元素和子级元素重叠,并且二者具有相同类型的事件。当点击子级元素时行为就会想上传递,这种现象称为事件冒泡。

2.如何阻止事件冒泡?

$(".son").click(function(event){
alert(" son");
return false;//(1)让子标签回调函数中返回false
event.stopPropagation();//(2)禁止父级触发事件冒泡
});
$(".father").click(function(){
alert(" father");
});

3.什么是默认行为?

原因:该标签正常流程下应该执行的默认事件,例:跳转

4.如何阻止默认行为?

<body>
<a href=" http://www.baidu.com">注册</a>

<form action=" http://www.taobao.com">
	<input type="text">
	<input type="submit">
</form>
</body>

$("a").click(functon(event){
   alert("注册表 ");
   return false;//(1)让子标签回调函数中返回false
   event.preventDefault();//(2)禁止父级触发事件冒泡
});

$("input[type='submit']").click(function(){
	alert("跳转");
   return false;//(1)让子标签回调函数中返回false
   event.preventDefault();//(2)禁止父级触发事件冒泡
});

十五.jQ事件自动触发

作用:无需手动触发

<form action=" http://www.taobao.com">
	<input type="text">
	<input type="submit">
</form>

$("input[type='submit']").trigger("click");
//如果利用trigger方法触发会触发默认行为

$("input[type='submit']").triggerHandler("click");
//如果利用triggerHandler方法触发不会触发默认行为

*面试题
a标签的默认行为与其他标签不同,如果你只使用trigger()方法来触发,也是不会触发到默认行为的。
想要触发默认行为,必须修改代码。

<a href=" http://www.baidu.com"><span>注册</span></a>
$("span").click(function(){
	alert("a");
});
$("span").trigger("click");

十六.jQ事件自定义事件

1.自定义事件:
jQ库中没有的事件,并让该事件能响应

2.要求:
(1)事件必须通过on绑定
(2)事件不能被手动触发

十七.jQ事件命名空间

原因:在工作中,多人协作完成代码,会发生两个人往同一个标签中添加了相同类型的不同事件

前提条件:
(1)该技术只能运用于通过on绑定的事件
(2)通过自动触发来触发事件

$(".son").on("click.zs//.zs就是该事件的命名空间",function(){
alert("click1");
});

$(".son").on("click.ls//.ls就是该事件的命名空间",function(){
alert("click2");
});

*面试题

<div class="father"> 
	<div class="son">
	</div>
</div>

$(".father").on("click.zs",function(){
alert("1");
});
$(".father").on("click",function(){
alert("2");
});
$(".son").on("click.zs",function(){
alert("3");
});

$(".son").trigger("click.zs");
//	利用trigger触发子元素的事件命名空间的事件,
	那么父元素带相同事件命名空间的事件也会被触发,
	而没有相同事件命名空间的事件不会被触发。
	
$(".son").trigger("click");
//	利用trigger触发子元素的不带事件命名空间的事件,
	子元素所有同类型事件会被触发
	那么父元素带相同事件命名空间的事件也会被触发,
	而没有相同事件命名空间的事件也被触发。

十八.jQ事件委托

1.什么是事件委托?
就是请他人帮忙,结果反馈给我们

<body>
<ul>
	<li>我是第一个li</li>
	<li>我是第二个li</li>
	<li>我是第三个li</li>
</ul>
<button>新增li</button>
</body>

$("button").click(function(){
 $("ul").append("<li>新增li</li>");//新增的li无法响应click事件,因为在所有dom元素加载完后网页中只有3个li,第二个click事件就只给这三个li添加了click事件,所以新增的li无法响应click事件
});

$("ul>li").click(function(){
console.log($(this).html());
});

//新增的li无法响应click事件,
因为在所有dom元素加载完后网页中只有3个li,
第二个click事件就只给这三个li添加了click事件,
所以新增的li无法响应click事件

$("ul").delegate("li","click",function(){

//把原本应该给li的click事件给ul监听,
所以最后是ul来响应事件,而不是li
但是最后反馈出来的是li

console.log($(this).html());
});

2.解决方案
找那些在入口函数执行之前就有的元素,来监听你动态添加的元素上的某些事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值