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

来源:4-3 使用jQuery实现网页定位导航(下)

qq_总有刁民想害朕_15

2016-04-28 15:29

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

写回答 关注

5回答

  • 子涵_program
    2016-07-14 16:54:32

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

  • weibo_哆啦A梦有大口袋_0
    2016-05-31 14:52:52

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

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

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

    3. 解决问题,请采纳

  • woshi123w
    2016-05-26 18:50:39


    左侧有5个div

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

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

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

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

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


  • 鲈先森
    2016-04-28 22:39:42

    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一致的元素,并为其添加默认样式。

  • Mr_Web
    2016-04-28 22:21:59

    (可能不完全正确,理解为主哦)用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建立的联系呀

网页定位导航特效

本课程讲解网页定位导航特效,仿天猫版地狗购物网,你值得拥有

71404 学习 · 486 问题

查看课程

相似问题