javascript - 如果存在其他类,则隐藏特定的 DIV 类

标签 javascript jquery css wordpress

我正在使用 wordpress。我试图隐藏产品页面上的添加到购物车按钮,直到客户回答所有问题。我使用的插件提供了供自定义选择的选项。步骤 1 步骤 2 步骤 3 等。当他们到达最后一步时,“继续”按钮停用/禁用,类更改为 .owl-next button disabled

所以我试图使用该类作为触发器来显示当时添加到购物车按钮并隐藏它直到该类处于事件状态。到目前为止,我能够隐藏添加到购物车按钮,但我无法让添加到购物车显示。以下是我目前在 header 中尝试的代码。

<script>
var aVisible = $('.owl-next.button').css('display');
if (aVisible == 'none') {
}
</script>


<script>

if($('.owl-next.button').length){
   $('.single_add_to_cart_button.button.alt').hide();
}`enter code here`
</script>

<div class="owl-nav"><a class="owl-prev button">Back</a><a class="owl-next button disabled">Continue</a></div>
<button type="submit" name="add-to-cart" value="267" class="single_add_to_cart_button button alt">Add to cart</button>

最后一步的变化:

<div class="owl-nav"><a class="owl-prev button">Back</a><a class="owl-next button disabled">Continue</a></div>
<button type="submit" name="add-to-cart" value="267" class="single_add_to_cart_button button alt">Add to cart</button>

最佳答案

向该按钮添加一个监听器并检查是否有类 disabled,然后显示您的按钮,如下所示:

$(document).ready(function(){
   $(document).on('click', '.owl-next.button', function() {
     let aVisible = $(this).hasClass('disabled');
      if (aVisible) {
       $('.single_add_to_cart_button.button.alt').show();
       }
    });
});

.hasClass() 在您点击按钮的那一刻正在检查并返回一个 bool 值,然后当为真时将再次显示您的按钮。

编辑: 根据 php 语法的错误,您必须:

如果您将脚本包含在 php 文件中,那么您将收到错误消息,您可以将 <?php 替换为 <script>,将 ?> 替换为 </script> syntax error, unexpected '(', expecting variable (T_VARIABLE) or '$'

或者使用如下语法:

jQuery(document).ready(function(){
   jQuery(document).on('click', '.owl-next.button', function() {
     let aVisible = jQuery(this).hasClass('disabled');
      if (aVisible) {
       jQuery('.single_add_to_cart_button.button.alt').show();
       }
    });
});

这将避免与 php 文件发生冲突。

if i wrap in and place in header i get in console firs two lines in script TypeError: $ is not a function

请记住始终在脚本开头包含第一个 JQuery 库,这样您就不会出错。

如果仍然出现错误,用这个包裹它:

jQuery(document).ready(function($){
   $(document).on('click', '.owl-next.button', function() {
     let aVisible = $(this).hasClass('disabled');
      if (aVisible) {
       $('.single_add_to_cart_button.button.alt').show();
       }
    });
});

这种方式应该可行,来源jQuery Uncaught TypeError: Property '$' of object [object Window] is not a function

编辑 2:wordpress stackexchange 看来,用其他方式包装 document.ready 似乎更好:

(function($) {
    $('.owl-next.button').click(function() {
         let aVisible = $(this).hasClass('disabled');
          if (aVisible) {
           $('.single_add_to_cart_button.button.alt').show();
          }
    });
})(jQuery);

关于javascript - 如果存在其他类,则隐藏特定的 DIV 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46696643/

相关文章:

javascript - 将 tr 和 td 包裹在 jQuery 中 ajax 调用的数据中

css - 我应该在哪个 .scss 文件上进行站点更新?

html - 如何自定义 HTML 选择选项菜单?

JavaScript - 将偶数索引数组元素乘以 2 并将奇数索引数组元素乘以 3

javascript - 正则表达式匹配包含除某些字符串之外的某些字符串的模式

javascript - 创建 CSS/JavaScript 选项卡面板——每个导航项都在与其对应内容相同的 div 中

jquery - 提交每个步骤,然后在引导向导中提交下一步

html - 如何将此搜索表单居中?

javascript - 在简单示例中,Enyo 自定义事件未处理且未定义

javascript - 如何制作一个像这样随着页面滚动超过某个点的导航栏?