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難道不能取到值嗎
2015-12-18
items.each(function () {
? ? ? ? ? ? ? ?var m = $(this);
這里的this是動態變化的,你遍歷是為了比較top與scrollTop從而找出想要的currentId,所以必須遍歷