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事件,逻辑比较清晰。

莫回无
TA贡献1865条经验 获得超7个赞
你把事件绑定在$(".navTree li").on 上面的哇, $(".navTree li")所以这儿肯定可以撒
你的 e.target.className="navTree-selected" 当中的 e 是跟你绑定事件的元素有关系的
你可以试下给所有的元素都绑定 mouseover 事件 $(".navTree *").on 应该 dt dd 就也会生效了

阿波罗的战车
TA贡献1862条经验 获得超6个赞
你自己说的很明白了
$(this).find('dt')他只是在找当前对象下的“dt”并不会找 其他li下的dt
而$(".navTree li")是所有li对象的集合 这样下的find就是 所有li下的 dt
- 3 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消