【发布时间】:2012-06-23 21:07:01
【问题描述】:
我正在尝试隔离并将一个类添加到单击的锚标记。标签是从 Wordpress 循环中提取的。我可以编写 JQuery 来删除“静态”类,但它正在从 div 中的所有标签中删除该类,而不仅仅是单击一次,在瞬间添加活动类,然后在页面重新加载时删除所有类新的项目集。
这是 WP 循环
<div class="more">
<a class="static" href="<?php bloginfo('template_url'); ?>/work/">ALL</a>
<?php
foreach ($tax_terms as $tax_term) {
echo '<a class="static" href="' . esc_attr(get_term_link($tax_term, $taxonomy)) . '" title="' . sprintf( __( "View all posts in %s" ), $tax_term->name ) . '" ' . '>' . $tax_term->name.'</a>';
} ?>
</div>
生成这个 html:
<div class="more">
<a class="static" href="#">ALL</a>
<a class="static" href="#">Things</a>
<a class="static" href="#"> More Things</a>
<a class="static" href="#">Objects</a>
<a class="static" href="#">Goals</a>
<a class="static" href="#">Books</a>
<a class="static" href="#">Drawings</a>
<a class="static" href="#">Thoughts</a>
</div>
JQuery:
$("div.more a").on("click", function () {
$("a.static").removeClass("static");
$(this).addClass("active");
});
我已经复习了here 和here 的其他类似问题,但是这两种解决方案都不适合我。这可以用 JQuery 完成还是应该在 html 内联锚点中放置一个点击事件?
看起来它只工作了一秒钟,直到页面重新加载。
我正在使用 Chrome 开发工具查看源代码。看起来它工作正常,但是当页面重新加载时,“静态”类会从 div 中的所有锚标记中删除。 新添加的类名在页面加载后被删除是否有原因?
它通过 url 传递一个变量来加载一组项目。例如,当您点击 Things 时,它会在 url 中传递 ?type=airports 以获取特定的相关帖子。
更新:
也许有更好的方法来实现这一点。总体目标是向用户显示他们在查看结果集时单击了哪个链接。所以当点击“THings”时,链接有绿色背景和白色类型等。由于JQuery正在删除页面重新加载时添加的类,php会是更好的解决方案吗?
更新 2
所有建议的代码都有效。由于链接正在重新加载页面并通过 url 参数进行过滤,因此问题未解决,但答案完全正确。
【问题讨论】:
-
不要仅仅因为你没有看到视觉变化就假设没有添加类。相对于适用于元素的其他 css 规则,您的类的 css 规则可能不够具体
标签: javascript jquery wordpress hyperlink