javascript - 打印时禁用 jQuery 定义的样式

标签 javascript jquery css printing

我有一个页面,其中包含通过 jQuery 在文档就绪和窗口滚动上定义的许多功能和样式,甚至确保它在禁用 JavaScript 的情况下很好地降级。然而,我只是拼凑了一个“打印”样式表,它删除了大部分样式,当我测试它时,我意识到我的 jQuery 方法在打印和添加回一些背景图像时起作用了。打印时是否可以禁用 JavaScript 或 jQuery,甚至是特定功能?

最大的问题是这件作品,它根据之前生成的数字生成随机背景图像……它覆盖了我的打印样式表对背景图像的调用:无,即使使用 !important 标签也是如此:

$(document).ready(function() {
    $("body").css({backgroundImage: 'url(images/body_bg_'+background+'.jpg)'});
});

谢谢!

最佳答案

在样式表中定义您的样式。然后使用 JavaScript 更改 DOM 以将这些样式应用于元素,而不是修改样式属性。

这让您可以控制不同的媒体,并保持关注点的分离(语义、表示和逻辑)。

@media screen {
   body.something {
       background-image: url(images/body_bg_something.jpg);
   }
}

$(document).ready(function() {
    $("body").addClass('something');
}

也就是说:

it is overriding my print stylesheet's call for background-image:none, even when using the !important

它真的不应该那样做。

关于javascript - 打印时禁用 jQuery 定义的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032434/

相关文章:

javascript - 使用 yield 等待异步代码完成

php - 限制 Ajax 鼠标悬停

jquery - RequireJS 不适合我

更改元素后,JavaScript (jQuery) 不再使用react

html - 是否可以使用 CSS 变换和过渡来缩放 SVG 图像?

html - 如何链接我的 flexbox css 和 html 类?

Javascript 将字符串转换为对象属性

JavaScript 范围 : access variable inside event handler?

javascript - 使用 ".create"时如何使用 Mongoose 添加到数组中的对象

javascript - 使用 jquery 更改具有子菜单的 UL 列表菜单的类