jQuery隐藏/显示功能覆盖html内联样式背景图像?

Posted

技术标签:

【中文标题】jQuery隐藏/显示功能覆盖html内联样式背景图像?【英文标题】:jQuery hide/show functions overwrite html inline style background image? 【发布时间】:2019-03-19 18:17:45 【问题描述】:

我的 hide()/show() 函数用 display: none/block 覆盖内联样式背景图像,但不知何故它不会覆盖第一个 (.concrete) .img 背景图像 html 元素。

默认情况下 .concrete 在 CSS 中具有 display: 块,而其他 .img 具有 display: none;

HTML:

<p class="slider-link concrete active"><?php the_field("product1"); ?></p>
<p class="slider-link light"><?php the_field("product2"); ?></p>

<div class="img concrete" style="background-image: url(<?php the_field('concrete_img'); ?>)">
    <div class="content">
        ...
    </div>
</div>
<div class="img light" style="background-image: url(<?php the_field('light_img'); ?>)">
    <div class="content">
        ...
    </div>
</div>

jQuery:

$('.slider-link').click(function() 
    $('.slider-link').removeClass('active');
    $(this).addClass('active');
    if ($(this).hasClass('concrete')) 
        $('.img').hide();
        $('.img.concrete').show();
     else if ($(this).hasClass('light')) 
        $('.img').hide();
        $('.img.light').show(); 
    );

【问题讨论】:

我怀疑显示/隐藏实际上会覆盖背景图像的内联样式。您的问题一定是其他问题,但是根据给定的问题描述和代码,很难判断可能是什么问题。请创建一个minimal reproducible example。 你需要在jquery中设置背景图片。不是内联样式。 【参考方案1】:

我的错! ACF 图像字段返回图像对象(默认情况下),但我之前创建的第一个对象已更改为返回“图像 url”,因此它可以与内联背景图像样式一起使用。而且因为它们有错误的语法,所以在使用 DevTools 进行检查时,它只是覆盖了错误的行。

【讨论】:

以上是关于jQuery隐藏/显示功能覆盖html内联样式背景图像?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Jquery 在我的 html 中添加内联样式?

Jquery将表格导出到csv隐藏表格单元格

删除 Wordpress 上 Fancybox 容器上的“溢出:隐藏”内联样式

Angular - 样式被忽略/覆盖

使用 HTML/CSS 覆盖浏览器表单填充和输入突出显示

使用 HTML/CSS 覆盖浏览器表单填充和输入突出显示