javascript - jquery 切换不工作

标签 javascript jquery html css

我创建了一个函数,我想要一个 div 来增加高度和不透明度,当再次点击时它应该返回到它的原始状态所以我使用切换函数来做到这一点现在问题是当页面加载时按钮消失了

$(document).ready(function() {
  $('#cm_now').toggle(function() {
    $('.search_bx_ar').css({
      'opacity': '1'
    });
    $('.search_bx_ar').css({
      'height': '40px'
    });
  });
});
.search_bx_ar {
  position: relative;
  margin: 0 0 10px 0;
  width: 100%;
  opacity: 0;
  height: 0px;
  transition: ease-in-out all .5s;
  -webkit-transition: ease-in-out all .5s;
  -moz-transition: ease-in-out all .5s;
}

.compare_sr_btn {
  float: right;
  width: 25%;
  padding-left: 15px;
  margin: 15px 0 10px 0;
}

.compare_sr_btn>#cm_now {
  background-color: #2b7f7f;
  color: #fff;
  border: none;
  height: 40px;
  line-height: 40px;
  width: 100%;
  font-size: 12px;
  text-transform: uppercase;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="compare_sr_btn">
  <input type="button" id="cm_now" value="Compare Now" />
</div>
<div class="search_bx_ar">
  <input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>

最佳答案

Toggle 并不像您认为的那样。切换用于隐藏或显示元素。由于您在页面加载后立即运行该函数,因此该按钮会立即隐藏并带有漂亮的小动画。

http://api.jquery.com/toggle/

看看这是否符合您的要求:

var buttonState = 0;

$(document).ready(function() {
    $('#cm_now').click(function() {
        if(buttonState == 0) {
            $('.search_bx_ar').css({'opacity': '1'});
            $('.search_bx_ar').css({'height' : '40px'});
    	} else {
            $('.search_bx_ar').css({'opacity': '0.5'});
            $('.search_bx_ar').css({'height' : '20px'});
        }
        buttonState = 1 - buttonState; //a clever way to toggle between 0 and 1
    });
});
.search_bx_ar {
    position: relative;
    margin: 0 0 10px 0;
    width: 100%;
    opacity: 0;
    height: 0px;
	transition: ease-in-out all .5s;
	-webkit-transition: ease-in-out all .5s;
	-moz-transition: ease-in-out all .5s;
}
.compare_sr_btn {
    float: right;
    width: 25%;
    padding-left: 15px;
    margin: 15px 0 10px 0;
}

.compare_sr_btn > #cm_now {
    background-color: #2b7f7f;
    color: #fff;
    border: none;
    height: 40px;
    line-height: 40px;
    width: 100%;
    font-size: 12px;
    text-transform: uppercase;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="compare_sr_btn">
    <button id="cm_now">Compare Now</button>
</div>
<div class="search_bx_ar">
    <input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>

关于javascript - jquery 切换不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44714503/

相关文章:

jquery - 获取数组中的背景颜色?

html - 针对使用的图标字体的 Chrome 未使用预加载警告

javascript - 如何向切换添加过渡?

javascript - 如何使用 jQuery 搜索嵌套的 JSON 数组?

javascript - JQueryUI SwitchClass 对 Javascript 没有影响

html - 在 Cordova/Ionic 中放大特定的 div

html - emmet 在 css 中选择自定义类

javascript - 为函数内的 else 语句创建循环

jquery - 我可以根据浏览器宽度使用 CSS 或 jQuery 更改占位符文本吗?

jquery - Rails Assets 预编译 : Invalid CSS in jquery. scrollbar.css 背景图片