我正在尝试循环遍历ul
的子元素,并为每个元素添加一个编号的类。大多数代码都有效,但我得到.offset()
的未定义错误。有人可以帮我解决原因吗?
这是一个基于PHP的网站,代码生成类.services
和一个与ID相同的类的面板
var countServices = $("#services-menu ul li");
// console.log(countServices.length);
var i;
for (i = 0; i < countServices.length; i++) {
// console.log("services" + i)
$(".services" + i).click(function() {
console.log("Clicked on .services" + i)
$('html, body').animate({
scrollTop: $("#services" + i).offset().top
}, 2000);
});
};
答案 0 :(得分:0)
我认为你的事情过于复杂,而且我在错误的地方。这将永远是1。
以下是演示:https://jsfiddle.net/vcjdx42x/2/
试试这个:
<div id="services0">lorem ipsum</div>
<div id="services1">lorem ipsum</div>
<div id="services2">lorem ipsum</div>
<div id="services3">lorem ipsum</div>
<div id="services-menu">
<ul >
<li class="services0">0</li>
<li class="services1">1</li>
<li class="services2">2</li>
<li class="services3">3</li>
</ul>
</div>
<script>
i = 0;
$("#services-menu ul li").each(function (idx, obj) {
var name = "#services" + i;
console.log(name);
$(this).click(function() {
console.log($(this));
$('html, body').animate({
scrollTop: $(name).offset().top
}, 2000);
});
i++;
});
</script>