我正在尝试附加一个点击功能,该功能会将CSS类添加到特定div中的所有锚标记。不知怎的,我不能让jQuery这样做(也没有JS错误)。
div:
<div id="better">
<a href="1.aspx">One</a>
<a href="2.aspx">Two</a>
<a href="3.aspx">Three</a>
</div>
<div id="better">
<a href="1.aspx">One</a>
<a href="2.aspx">Two</a>
<a href="3.aspx">Three</a>
</div>
我的jQuery代码(在$(document).ready中):
$("#better > a").click(function() { $(this).addClass('active'); });
我在点击功能中添加了一个警报,看它是否会触发,但没有任何反应。正如我上面所写,我也没有在FF错误控制台中获得JavaScript错误。
帮助?
编辑:这只是示例代码。是的,重定向更改类没有意义。我刚刚将代码简化为我正在尝试的核心。 :)
答案 0 :(得分:3)
$("#better a").bind('click', function() { $(this).addClass('active'); });
答案 1 :(得分:1)
如果我理解你在问什么......你想最终得到这个吗?
<div id="better">
<a href="1.aspx" class="active">One</a>
<a href="2.aspx" class="active">Two</a>
<a href="3.aspx" class="active">Three</a>
</div>
如果点击该div中的任何链接,对吗? (你确实说过所有锚标签)......然后使用它:
$("#better").click(function() {
$(this).find('a').addClass('active');
return false;
});
答案 2 :(得分:0)
警报对我有用。但是,如果要重定向到新页面,为什么还要添加一个类?
答案 3 :(得分:0)
两个猜测:
您的页面上是否有id="better"
的其他元素? ID应该是全局唯一的,因此选择器只返回其中一个。
尝试使您的点击功能返回false,以防止用户关注该链接。 (在用户离开页面时添加课程似乎很奇怪,除非链接在新窗口中打开。)
答案 4 :(得分:0)
尝试在结束正文标记之前或$(文档).ready()函数中运行页面底部的代码。
使用Firebug,您可以使用console.log()写出到javascript控制台,以确保选择器实际返回元素。示例:console.log($(“#better&gt; a”)。length)