为了账号安全,请及时绑定邮箱和手机立即绑定

为什么只有鼠标移上去的那个标签class= .navTree li,请问这个到底是怎么回事?

为什么只有鼠标移上去的那个标签class= .navTree li,请问这个到底是怎么回事?

慕桂英3389331 2022-05-20 18:15:22
1、我一直不是很明白function(e) 传递的是什么参数,求指教,例如我下面的代码中的e是???2、我用jquery实现鼠标移动时改变背景的颜色的效果,其中用到了$(this),我知道$(this)是jquery对象,但是使用时不知道为什么出错了<ul class="navTree"><li id="Customer1" ><dl><dt class="" >客户管理</dt><dd id="Customer_1" >今天需联系</dd><dd id="Customer_2" >3天内需联系</dd><dd id="Customer_3" >7天需联系</dd><dd id="Customer_4" >30天需联系</dd><dd id="Customer_5" >30天需联系</dd></dl></li><li id="Bill_1" class="" ><dl><dt>发票</dt></dl></li><li id="Compensation_1" class=" " ><dl><dt>补偿</dt></dl></li></ul>jquery:$(".navTree li").on("mouseover",function(e){$(this).find("dt").removeClass("navTree-selected");$(this).find("dd").removeClass("navTree-selected");e.target.className="navTree-selected";})jquery 中当使用$(this).find("dt").removeClass("navTree-selected"),鼠标移动时,有的class去掉了“navTree-selected”,有的没有去掉,当我把$(this)替换成 $(".navTree li")时,就没有问题了,只有鼠标移上去的那个标签class= .navTree li,请问这个到底是怎么回事
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

$(this)是触发执行当前函数块(事件处理函数)最内层(距离最近的)的jQuery对象,在你的代码中就是触发了mouseover事件的对象。
function(e)中的参数e是事件对象,根据事件的不同,具有对应的子属性,比如键盘事件和鼠标事件等,你的代码中对应的是鼠标事件。
建议:如果是为了实现鼠标滑过的动态UI,那么可以考虑使用jQuery封装的hover事件,逻辑比较清晰。

查看完整回答
反对 回复 2022-05-23
?
莫回无

TA贡献1865条经验 获得超7个赞

你把事件绑定在$(".navTree li").on 上面的哇, $(".navTree li")所以这儿肯定可以撒
你的 e.target.className="navTree-selected" 当中的 e 是跟你绑定事件的元素有关系的
你可以试下给所有的元素都绑定 mouseover 事件 $(".navTree *").on 应该 dt dd 就也会生效了

查看完整回答
反对 回复 2022-05-23
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

你自己说的很明白了
$(this).find('dt')他只是在找当前对象下的“dt”并不会找 其他li下的dt
而$(".navTree li")是所有li对象的集合 这样下的find就是 所有li下的 dt

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号