jq要注意的点

查找下标

JQ对象查找指定下标的方法为:eq()
DOM对象的为:get()
eg:今天写一个导航条绑定鼠标进入事件时播放指定音乐,因为JQ中没有封装audio 和 video de 的方法,所以play的方法要绑定在DOM元素上 : ( " a u d i o " ) . g e t ( ("audio").get( (this).index()).play(); 这时如果要是使用eq的话就不对了。

一个报错

但是这时报错了Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first.
原来在Chrome 4月份更新了版本后,autoplay政策做了更改
解决方法:打开chrome://flags/#autoplay-policy
把Default修改为 No user gesture is required

prop方法

对于一些特殊的属性 eg:checked, selected ,disabled 这些值为布尔值的属性,如果使用attr方法设置,执行一次后就不再执行,因为JQ对于未设置的这些特殊属性会返回undefined,所以要用prop方法
用法和attr相同 eg:prop(“checked”,“true”)

动画队列

JQ中会把动画放在一个动画队列中。如果调用多个动画,它也会按照顺序挨个执行,不会覆盖,也会把动画保存好,但同时不好的地方也出现了。如果有一个鼠标进入触发动画的函数,用户多次触发并速度很快,那么鼠标离开后 ,它仍然会执行,直到动画队列中的动画执行完。
解决方法:stop()方法 停止正在执行的动画
在动画方法前调用此方法就可以解决动画队列的问题。
stop(clearQueue,jumpToEnd) 参数值都为布尔型
clearQueue :是否清除动画队列
jumpToEnd :是否跳转到当前动画的最终效果
不传参默认都为 false。

index()方法

JQ中的index()方法会返回当前元素在所有兄弟元素中的索引

<li><a href=""></a>
<li><a href=""></a>
<li><a href=""></a>
如果给a标签使用index()方法就只会显示0,要对li标签使用此方法

猜你喜欢

转载自blog.csdn.net/qq_43697072/article/details/84893798