Javascript 单击html对象后是否将其传递给函数?
我有一个小列表,我在后面的代码,我有一个onclick,当一个按钮被点击时会被触发(用于按钮的标记)。我想知道如何将对象传递给onclick函数,以便切换其类。所以像这样的事情:Javascript 单击html对象后是否将其传递给函数?,javascript,jquery,html,Javascript,Jquery,Html,我有一个小列表,我在后面的代码,我有一个onclick,当一个按钮被点击时会被触发(用于按钮的标记)。我想知道如何将对象传递给onclick函数,以便切换其类。所以像这样的事情: <script "text/javascript"> function navButtonClick() { $(this).toggleClass("is-open"); alert("Yay!");
<script "text/javascript">
function navButtonClick() {
$(this).toggleClass("is-open");
alert("Yay!");
}
</script>
函数navButtonClick(){
$(this.toggleClass(“打开”);
警惕(“耶!”);
}
另一个论坛上的一位人士表示,代码应该可以工作,但似乎什么也没发生
下面是我的后台代码写入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>
地点
-
只需将
此
传递到onclick
,然后在函数中使用它
演示:
JS:
<script "text/javascript">
function navButtonClick(clicked) {
$(clicked).toggleClass("is-open");
alert("Yay!");
}
</script>
<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>
.is-open{
background-color: red;
}
但是,您似乎只需要以下CSS:
CSS:在这里,只要把你的CSS类放进去。它是打开的
只需将
此
传递到onclick
,然后在函数中使用它
演示:
JS:
<script "text/javascript">
function navButtonClick(clicked) {
$(clicked).toggleClass("is-open");
alert("Yay!");
}
</script>
<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>
.is-open{
background-color: red;
}
但是,您似乎只需要以下CSS:
CSS:在这里,只要把你的CSS类放进去。它是打开的
您可能有范围界定问题。这行吗
<script "text/javascript">
window.navButtonClick = function(el) {
$(el).toggleClass("is-open");
alert("Yay!");
}
</script>
...
<a href="#" onclick="window.navButtonClick(this);">Stanislaus</a>
...
window.navButtonClick=功能(el){
$(el.toggleClass(“打开”);
警惕(“耶!”);
}
...
...
您可能存在范围界定问题。这行吗
<script "text/javascript">
window.navButtonClick = function(el) {
$(el).toggleClass("is-open");
alert("Yay!");
}
</script>
...
<a href="#" onclick="window.navButtonClick(this);">Stanislaus</a>
...
window.navButtonClick=功能(el){
$(el.toggleClass(“打开”);
警惕(“耶!”);
}
...
...
我通过toggleClass假设您正在使用JQuery,因此您可以直接使用.on('click'),而不是尝试将其转换为函数调用,但是如果您将toggle类分配给a元素而不是li元素,则会更容易
我通过toggleClass假设您正在使用JQuery,因此您可以直接使用.on('click'),而不是试图将其转换为函数调用,但是如果您将toggle类分配给a元素而不是li,则会更容易
toggleClass
是jQuery。您正在使用jQuery吗?toggleClass
是jQuery。您正在使用jQuery吗?我是否需要删除我的“ref=”javascript:navButtonClick“?”威尔塔特尔说,“是的,那就没必要了。就这样吧。我更新了我的提琴,向您显示@WillTuttle yes,如果您使用on绑定,您将不再需要单击链接,因为它将自动调用此函数。如果您希望所有单击的链接都发生这种情况,那么这将是最有效的,但是如果是这种情况,您可以通过CSS来完成这一切<代码>a:已访问的将像这样工作,但不会发出警报。我将href更改为“#”,但似乎什么都没有发生now@WillTuttle您是否将“toggle”类从li元素更改为a元素?你是否也加入了我发布的代码?再看一看我上次评论中的JSFIDLE链接,我将其改为“#”,它可以正常工作。是否需要删除我的“ref=”javascript:navButtonClick“?”威尔塔特尔说,“是的,那就没必要了。就这样吧。我更新了我的提琴,向您显示@WillTuttle yes,如果您使用on绑定,您将不再需要单击链接,因为它将自动调用此函数。如果您希望所有单击的链接都发生这种情况,那么这将是最有效的,但是如果是这种情况,您可以通过CSS来完成这一切<代码>a:已访问的将像这样工作,但不会发出警报。我将href更改为“#”,但似乎什么都没有发生now@WillTuttle您是否将“toggle”类从li元素更改为a元素?你是否也加入了我发布的代码?再看一看我上次评论中的JSFIDLE链接,我将其改为“#”,它就可以工作了。警报被触发,但没有发生其他事情。为了测试,我如何打印警报以显示“SDtanislaus”?请查看我编辑的答案,并将navButtonClick函数的内容更改为alert(el.innerHTML)
。alert(el.innerHTML)和alert($((“el”).innerHTML);正在给我一个“未定义”的错误警报被触发,但没有其他事情发生。为了测试,我如何打印警报以显示“SDtanislaus”?请查看我编辑的答案,并将navButtonClick函数的内容更改为alert(el.innerHTML)
。alert(el.innerHTML)和alert($((“el”).innerHTML);你给我一个“未定义”的错误是因为某人的原因“onclick”对我不起作用,但是把函数放在“href”里就行了?你说土豆我说土豆
,其实是一样的,但是你用的是什么浏览器呢?firefox,因为某人的原因“onclick”对我不起作用,但是把函数放在“href”里是吗?你说土豆我说土豆
,其实是一样的,但是你用的是什么浏览器呢?firefox,现在