创建一个 javascript 函数来根据单击的列表元素在列表元素之间切换类
我正在尝试创建一个函数来更改一系列 5 个列表元素的类,具体取决于单击的元素。目标是根据当前元素来更改元素的样式。
我尝试过这样的操作:
function addClass(obj)
{
obj.className="highlight";
}
然后将其添加到我的元素中:
onclick="addClass(this);
但这仅将类添加到列表中的第一个元素,然后在单击不同的元素时没有删除该类。
我的列表元素如下所示:
<ul id="circularMenu">
<a href="#strategy" onclick="addClass(this);"><li id="strategy_link"><h3>Strategy</h3></li></a>
<a href="#branding"><li id="branding_link" onclick="addClass(this);"><h3>Branding</h3></li></a>
<a href="#marketing"><li id="marketing_link" onclick="addClass(this);"><h3>Marketing</h3></li></a>
<a href="#media"><li id="media_link" onclick="addClass(this);"><h3>Media</h3></li></a>
<a href="#management"> <li id="management_link" onclick="addClass(this);"><h3>Management</h3></li></a>
</ul>
当单击某个项目时,url 会发生变化,也许这可能是设置函数根据 url 更改类的方法?我对 javascript 非常陌生,任何有关如何完成这项工作的想法将不胜感激。
我当前的编码方式是在悬停时更改每个项目,但我希望更改保持不变,直到单击不同的项目。可以在这里查看:http://perksconsulting.com/dev/capabilties.php我指的项目是页面左侧的黑点。
I am trying to create a function to change the class on a series of 5 list elements depending on which has been clicked. The goal is to change the style of the element depending on which one is the current element.
I had tried something like this:
function addClass(obj)
{
obj.className="highlight";
}
and then added this to my elements:
onclick="addClass(this);
but this only added the class to the first element in the list and then did not remove the class when a different one was clicked.
My list elements look like this:
<ul id="circularMenu">
<a href="#strategy" onclick="addClass(this);"><li id="strategy_link"><h3>Strategy</h3></li></a>
<a href="#branding"><li id="branding_link" onclick="addClass(this);"><h3>Branding</h3></li></a>
<a href="#marketing"><li id="marketing_link" onclick="addClass(this);"><h3>Marketing</h3></li></a>
<a href="#media"><li id="media_link" onclick="addClass(this);"><h3>Media</h3></li></a>
<a href="#management"> <li id="management_link" onclick="addClass(this);"><h3>Management</h3></li></a>
</ul>
When an item is clicked the url changes, maybe this could be the way to set up the function to change classes depending on the url? I am very new with javascript any ideas on how to make this work would be greatly appreciated.
The current way I have it coded is to change each item when hovered, but I would like the change to remain until a different item is clicked. It can be viewed here: http://perksconsulting.com/dev/capabilties.php The items I am referring to are the black dots on the left side of the page.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,您应该使用 jQuery
addClass()
方法。您不需要编写自己的(顺便说一句,您的 addClass() 实现有错误)。试试这个:
然后:
或者更好的是,保持你的 html 干净,让 jQuery 简化事情:
然后,在你的页面的某个地方:
First, you should use the jQuery
addClass()
method. You don't need to write your own (your addClass() implementation is buggy, by the way).Try this:
Then:
Or even better, keep your html clean and let jQuery simplify things:
Then, somewhere in your page:
试试这个。
Try this out.