Javascript 单击html对象后是否将其传递给函数?

Javascript 单击html对象后是否将其传递给函数?,javascript,jquery,html,Javascript,Jquery,Html,我有一个小列表,我在后面的代码,我有一个onclick,当一个按钮被点击时会被触发(用于按钮的标记)。我想知道如何将对象传递给onclick函数,以便切换其类。所以像这样的事情: <script "text/javascript"> function navButtonClick() { $(this).toggleClass("is-open"); alert("Yay!");

我有一个小列表,我在后面的代码,我有一个onclick,当一个按钮被点击时会被触发(用于按钮的标记)。我想知道如何将对象传递给onclick函数,以便切换其类。所以像这样的事情:

   <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,现在