javascript - jQuery 根据按钮被点击的次数改变元素

标签 javascript jquery

我不知道是我不知道如何使用 .toggle() 还是我只是把 .click() 函数写错了但基本上我希望在单击按钮时发生两种不同的情况,具体取决于按钮是否打开。

基本上,如果单击按钮,我希望显示隐藏的 div 并且我希望更改按钮的文本。然后当再次点击时,div 再次隐藏,文本变回之前的样子

$(document).ready( function() {
    var count = 0;

    $("#dropdown-toggle-button").click(function() {
        count++;

    	if (count % 2 !== 0) {

            // on odd clicks do this
            $('#dropdown-column').css('display', 'block');
            $('#dropdown-toggle-button').text('Toggled Button');
        } else if (count % 2 === 0) {

            // on even clicks do this
            $('#dropdown-column').css('display', 'none');
            $('#dropdown-toggle-button').text('Un-toggled Button');
        };
    });
});
#dropdown-column {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<h2 id="sample-header">Header</h2>
<a href="#" id="dropdown-toggle-button">Un-toggled Button</a>
<div id="dropdown-column">
  <p>Hello, Stranger</p>
</div>

最佳答案

您唯一的问题实际上是语法错误!

首先,你忘了添加额外的内容});关闭外部document.ready函数。

接下来,else if 之前有一个分号。这告诉 javascript 它开始读取另一个语句而不是继续读取之前的 if 语句,这意味着“else”不知道将自己连接到什么。

如果你想更精炼你的代码,else后面的尾随if语句是多余的,如果只有2个状态,那么你可以这样做

if(statement passes as true){
    // do stuff
}
else { 
    // your code here 
}

关于javascript - jQuery 根据按钮被点击的次数改变元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882676/

相关文章:

javascript - 当我的 Youtube 评论或 Messenger 消息加载时,如何运行 Chrome 扩展程序?

c# - 如何清除动态添加的div内容,只显示div内容?

Jquery 当 FadeIn() 对象闪烁时,Ipad safari

php - 如何使用 PHP 重定向在新选项卡中自动打开外部链接?

javascript - Ajax 错误检查 - 如果 AJAX 请求失败,如何防止内容更改?

javascript - Google Analytics 事件跟踪 - 页面退出

javascript - 重新设计 JavaScript 函数,使所有按钮都可以重用

javascript - UpdatePanel 内的 ASP.NET GridView 直到第二次单击才会更新

javascript - 在ajax JQUERY中传递数据

javascript - AngularJS 将增量数字添加到选择列表中