2

我正在尝试附加一个单击函数,该函数将 CSS 类添加到特定 div 内的所有锚标记。不知何故,我无法让 jQuery 做到这一点(也没有 JS 错误)。

分区:

<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 错误。

帮助?

编辑:这只是示例代码。是的,重定向时更改课程没有意义。我刚刚将我的代码简化为我正在尝试做的事情的核心。:)

4

5 回答 5

3
$("#better a").bind('click', function() { $(this).addClass('active'); });
于 2009-09-22T18:38:23.417 回答
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;
});
于 2009-09-22T18:44:01.290 回答
0

警报对我有用。但是,如果您要重定向到新页面,为什么要添加一个类?

于 2009-09-22T18:38:17.183 回答
0

两种猜测:

  1. 您的页面上是否还有其他元素id="better"?ID 应该是全局唯一的,所以选择器只会返回其中一个。

  2. 尝试让您的点击函数返回 false,以阻止用户点击链接。(当用户离开页面时添加一个类似乎很奇怪,除非链接在新窗口中打开。)

于 2009-09-22T18:41:36.653 回答
0

尝试在页面底部的结束正文标记之前或在 $(document).ready() 函数中运行代码。

使用 Firebug,您可以使用 console.log() 写出到 javascript 控制台,以确保选择器实际上正在返回元素。例如:console.log($("#better > a").length)

于 2009-09-22T18:42:13.603 回答