【问题标题】:jQuery code embedded in a Drupal page has its css overridden嵌入在 Drupal 页面中的 jQuery 代码的 css 被覆盖
【发布时间】:2013-03-22 19:39:20
【问题描述】:

我开发了一个简单的仅 js / jQuery 的 Web 应用程序,它完全包含在自己的 div 中,意在进入 Drupal 页面。 Drupal 页面中只有 html 加载 jQuery 库,加载我的 javascript 文件,并为我的代码创建的动态元素设置 div。

<html>
<head>
<script ...load jquery from google cdn</script>
<script ...load my javascript</script>
</head>
<body>
<div id='my_div'></div>
</body>
</html>

代码执行得很好,除了改变css的行。 Drupal 主题将所有输入 div 设置为我正在尝试更改的奇怪颜色。我不允许整体更改 Drupal 主题。调用如

$("input").css("border", "3px solid red");

不要更改任何内容(所有这些调用也在 .ready() 函数中)。

有没有熟悉 Drupal 和 jQuery 的人可以告诉我如何在这个页面上覆盖某些 Drupal CSS 规则?

【问题讨论】:

  • 好吧,我没有看到任何输入标签...
  • 所有输入标签都是由脚本动态创建的。在 .ready() 上,我的代码将输入标签附加到 #my_div
  • 你有示例css和生成的html吗?或者一个有问题的工作jsfiddle。这真的有助于了解确切的问题是什么。
  • @David 在这种情况下,您要么必须创建输入将遵循的 CSS 规则,要么在动态创建输入时更改样式

标签: jquery css drupal


【解决方案1】:
$("input").css("border", "3px solid red !important");

也许?

更新:显然这是不可能的。 How to apply !important using .css()?

【讨论】:

    【解决方案2】:

    我猜 Drupal 使用 !important 否决了 jquery 应用的 css。 如果使用类应用该 css,那么您可以使用 jquery 的 removeClass() 删除这些样式。您的示例代码缺少详细信息以查看是否有帮助。

    【讨论】:

    • 我尝试了 $("input").removeClass("search-form") 以及 $("#csv_download").removeClass("search-form") 但似乎都不起作用。不过感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多