[英]Javascript select elements by class, change their max-height and then change clicked element max-height
因此,在单击时具有单击打开类的每个元素上,我希望具有该类的所有其他元素将其最大高度设置为40px,并将所单击的div最大高度设置为500px,所以我正在尝试做类似acordeon的操作。因此,使用Jquery可以正常工作,但是如何在Vanilla JS中实现它。
<script>
$(document).ready(function(){
$('.click-to-open').on('click', function(){
if($(this).css('max-height') == '40px'){
$('.click-to-open').css('max-height', '40px');
$(this).css('max-height', '500px');
}
else{
$('.click-to-open').css('max-height', '40px');
}
});
});
</script>
此js脚本有效,但其他语句似乎不起作用Javascript脚本:
(function(){
var elements = document.querySelectorAll('.click-to-open');
for(var i = 0; i < elements.length; i++){
elements[i].addEventListener('click',setMaxHeight);
}
function setMaxHeight(){
for(var i = 0;i < elements.length; i++){
elements[i].style.maxHeight = '40px';
}
if(this.style.maxHeight == '40px'){
this.style.maxHeight = '500px';
}
else {
this.style.maxHeight = '40px';
}
}
})();
(function(){
var elements = document.querySelectorAll('.click-to-open');
for(var i = 0; i < elements.length; i++){
//Add eventlistener to all elements and check height on click
elements[i].addEventListener('click',checkMaxHeight);
}
function checkMaxHeight(){
//Set maxheight on all elements to 40px
for(var i = 0;i < elements.length; i++){
setMaxHeight(elements[i],40);
}
//Check if clicked element has maxheight 40px
if(this.style.maxHeight == '40px'){
//Set max height on clicked element to 500px
setMaxHeight(this,500)
}
}
function setMaxHeight(element,value){
element.style.maxHeight = value + 'px';
}
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.