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

currentId不能直接直接通过currentId="#"+m.attr("id");来获得呢,还非要进行遍历吗

<script type="text/javascript">
   $(document).ready(function () {
       $(window).scroll(function () {
           var items = $("#content").find(".item");
           var menu = $("#menu");
           var top = $(document).scrollTop();
           var currentId; //滚动条现在所在位置的item id
           items.each(function () {
               var m = $(this);
               //注意:m.offset().top代表每一个item的顶部位置
               if (top > m.offset().top - 300) {
                   currentId = "#" + m.attr("id");
               } else {
                   return false;
               }
           });

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


其中currentId为什么不能直接通过currentId="#"+m.attr("id");来获得呢,还非要进行遍历呢?这里的m就是this,这个this难道不能取到值吗

正在回答

1 回答

items.each(function () {
               var m = $(this);

这里的this是动态变化的,你遍历是为了比较top与scrollTop从而找出想要的currentId,所以必须遍历

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

举报

0/150
提交
取消

currentId不能直接直接通过currentId="#"+m.attr("id");来获得呢,还非要进行遍历吗

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