我在代码后面有一个小列表,我有一个按下按钮时触发的onclick(用于按钮的标签)。我想知道如何将对象传递给我的onclick函数,以便我可以切换它的类。所以有点像这样:
<script "text/javascript">
function navButtonClick() {
$(this).toggleClass("is-open");
alert("Yay!");
}
</script>
另一个论坛上的人说代码应该有效,但似乎没有任何事情发生..
这是我的后面代码写入html的内容:
<div id="sidebar">
<nav>
<h2>Sites</h2>
<ul id="navMenu">
<li class="toggle"><a href="javascript:navButtonClick();">Stanislaus</a>
<ul class="subnav">
<li><a href="#" class="active">Bob</a></li>
</ul>
</li>
</ul>
答案 0 :(得分:4)
我假设你在使用JQuery的toggleClass,所以你可以使用.on('click')而不是试图将它变成函数调用,但是如果你分配了它,它会更容易将类切换为a元素而不是li。
$('a.toggle').on('click', function(){
$(this).toggleClass("is-open");
alert("yay");
});
答案 1 :(得分:0)
只需将this
传递给onclick
,然后在函数中使用它。
<强> JS:强>
<script "text/javascript">
function navButtonClick(clicked) {
$(clicked).toggleClass("is-open");
alert("Yay!");
}
</script>
<强> HTML:强>
<ul id="navMenu">
<li class="toggle"><a href="javascript:void(0);" onclick="navButtonClick(this)">Stanislaus</a>
<ul class="subnav">
<li><a href="#" class="active">Bob</a>
</li>
</ul>
</li>
</ul>
<强> CSS:强>
.is-open{
background-color: red;
}
CSS: 在这里只需输入您的CSS类.is-open
a:visited {
background-color: red;
}
答案 2 :(得分:0)
您可能遇到了范围问题。这有用吗?
<script "text/javascript">
window.navButtonClick = function(el) {
$(el).toggleClass("is-open");
alert("Yay!");
}
</script>
...
<a href="#" onclick="window.navButtonClick(this);">Stanislaus</a>
...