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

老师这里写的代码 不好理解,我不明白,有没有高手讲一下。那个&&那里

var currentLink = menu.find(".current");
                if (currentId && currentLink.attr("href") != currentId) {
                    currentLink.removeClass("current");
                    menu.find("[href=" + currentId + "]").addClass("current");
                }

正在回答

5 回答

其实你完全可以去掉if那个条件也可以成立,你去掉那个if添加只剩下三行代码后你会发现。这里要做的只是两步:第一、先把全部a元素的样式去掉,第二、对匹配的那个a元素加上样式。如果不先去掉,你在浏览器中会发现a元素全都显示样式,而不知道到底那个a被选中

0 回复 有任何疑惑可以回复我~

 if (currentId && currentLink.attr("href") != currentId) {}

  1. currentId等价于currentId!="",意思就是说当current有值时执行下面代码

  2. && currentLink.attr("href") != currentId    //并且选中楼层的a标签的href不等于滚动条所在楼层的id执行下面代码,因为相同话,就不需要执行下面的代码了,节约性能

  3. 解决问题,请采纳

2 回复 有任何疑惑可以回复我~


左侧有5个div

情况:左侧div显示出第二个div的时候

需要去掉右侧导航栏第一个li标签上的current类,给第二个li标签加上该类

这个时候currentid不为空,并且 currentLink.attr("href") != currentId

但若是左侧的div显示的始终是第一个div,就不需要让右侧导航栏的样式发生改变

这个时候currentid是空,并且 currentLink.attr("href") == currentId


0 回复 有任何疑惑可以回复我~

var currentLink = menu.find(".current");在menu里面找到已经设置了默认样式的元素。假设这个元素为A

 if (currentId && currentLink.attr("href") != currentId)判断currentId的值是否改变和A元素的href值与当前项目的ID值是否一致,不是的话说明当前项目与默认样式的元素不匹配,就移除默认样式,

menu.find("[href=" + currentId + "]").addClass("current");找到与menu中href值与当前项目的ID一致的元素,并为其添加默认样式。

1 回复 有任何疑惑可以回复我~

(可能不完全正确,理解为主哦)用currentId表示当前包含img的div并把初始赋值为空,如果这个div进入了适当的显示区域,就把 选择符“#”+当前div的id名 赋值给它。   currentLink是初始类名为current的a(也就是第一个),如果currentId不为空且进入了适当的显示区域的这个div对应的不是已经有类名current的a的话,就把这个a的current类删除,并查找所有a中href为currentId的a,再把这个a添加current类名。     其实连接块和图片块就是靠链接a的href和图片div的id建立的联系呀

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

老师这里写的代码 不好理解,我不明白,有没有高手讲一下。那个&&那里

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信