如题
html代码:
<div class="collapse navbar-collapse navbar-right" id="example-navbar-collapse">
<ul class="nav navbar-nav " id="nav_home">
<li class="active">
<a href="#myCarousel" title="首页">首页</a>
</li>
<li>
<a href="#about" title="关于">关于</a>
</li>
<li>
<a href="#product" title="产品">产品</a>
</li>
<li>
<a href="#support" title="技术支持">技术支持</a>
</li>
<li>
<a href="#case" title="案例">案例</a>
</li>
<li>
<a href="#contact" title="建议">联系</a>
</li>
</ul>
</div>
js代码:
$("a").click(function() {
$("html,body").animate({
scrollTop: $($(this).attr("href")).offset().top + "px"
}, 1000);
return false;
});
$("#nav_home").each(function (index) {
$(this).click(function () {
$("li").removeClass("active");
$("li").eq(index).addClass("active");
});
});
我想改变li标签的颜色,但发现只响应a标签的跳转事件,不响应li标签的点击事件
你可以直接写成li的点击事件,然后跳转到它的子类a的地址啊
$("#nav_home")将这里 改成$("#nav_home li") 试一下 我忘了具体怎么写 你应该遍历该ul下面的li 不是遍历ul 你写的是操作当前的ul
需要用dom 获取所有的li 然后在进行操作
$("#nav_home li").each(function (index) {
$(this).click(function () {
$('li').removeClass("active");
$(this).addClass("active");
});
});
修改了$("#nav_home li") 还是不行,只能响应a的事件
<script>
$("a").click(function() {
$("html,body").animate({
scrollTop: $($(this).attr("href")).offset().top + "px"
}, 1000);
return false;
});
$("#nav_home li").each(function (index) {
$(this).click(function () {
$('li').removeClass("active");
$(this).addClass("active");
});
});
</script>
可以看哈这篇文章,具体说就是阻止冒泡事件。 http://www.cnblogs.com/jams742003/archive/2009/08/29/1556187.html
$("a").click(function() {
$("html,body").animate({
scrollTop: $($(this).attr("href")).offset().top + "px"
}, 1000);
return false;
$("#nav_home li").removeClass("active");
$(this).parent.addClass("active");
});
直接去掉li的click事件
还是不行@眼角带笑意
$("a").click(function() {
$("#nav_home li").removeClass("active");
$(this).parent.addClass("active");
$("html,body").animate({
scrollTop: $($(this).attr("href")).offset().top + "px"
}, 1000);
return false;
});
这个可以了
li标签和a 标签怎么同时响应点击事件,但a标签嵌套在li标签里面,点击后只响应a标签事件?也是碰到了一样的问题无法解决,很多方法都试了,除非把a标签的跳转return false ,li标签的点击才有用