我试图确定是否可以添加一个按钮来切换css样式。我想从这样的事情开始:
add_action (\'woocommerce_before_cart\' , \'cart_multi_step_buttons\' , 2 );
function cart_multi_step_buttons() {
?>
<button class="cart-multi-step-button-1" onclick="cart_ms-1()">
Step 1
</button>
<script>
function cart_ms-1() {
var x = document.getElementsByClassName("cart_totals");
if (x.style.display === "none") {
x.style.display = "block";
}
else {
x.style.display = "none";
}
}
</script>
<?php
}
因此,当cart页面加载到我的woocommerce商店时,会有一个按钮来切换cart totals div的可见性(主要思想是开发一种简单的方法,将cart页面转换为多步骤流程,无需大量模板工作)。但这似乎不起作用。
我还认为,也许可以修改这个按钮,使每个按钮都与一小段css代码相关联,点击后,这些代码要么被激活,要么不被激活,但我不确定如何进行。
关于以下方面的任何建议:1)如果不编辑woo模板,这种事情是否可能发生;2)如果可能,我需要在代码中更改什么才能使其正常工作。
提前感谢您的帮助/指点。
最合适的回答,由SO网友:D. Dan 整理而成
这个getElementsByClassName
, 顾名思义,返回元素的集合,即数组,因此x.style.display
行不通。x[0].style.display
将适用于它找到的第一个元素。但由于这是Wordpress,默认情况下加载Jquery,因此您可以使用:
jQuery(\'.cart-multi-step-button-1\').click(function(){
jQuery(\'.cart_totals\').css({
\'background\': \'red\',
\'display\': \'none\',
});
});
您还可以使用jQuery切换类,并自己添加css:
jQuery(\'.cart_totals\').toggleClass(\'active\');
css:
.cart_totals.active{
background: red;
display: none;
}