我的要求有点棘手。我有一个标记如下:(只是一个例子,真正的标记非常复杂)
<div class="classA">
<div class="classB">
<p class="classC">
<span class="classD">
</span>
</p>
</div>
</div>
如上所示,有四个与标记关联的CSS类classA, classB, classC, classD
。
我还使用jQuery使用这些选择器绑定事件。
我的要求:我希望jQuery事件绑定能够正常工作,同时,CSS不应该被应用,即我想从UI角度否定CSS样式的影响,但是功能透视jQuery事件处理程序应该仍然可以工作。
那么,是否可以覆盖CSS选择器,使其样式不会应用于我的标记元素?
以下示例:
div.classA div.classB p.classC span.classD{
color:red;
}
我不希望字体颜色为红色,所以我尝试按如下方式覆盖选择器,但它不起作用:
div.classA div.classB p.classC span.classD{
color:red;
}
div.classA div.classB p.classC span.classD{
/*no styles here*/
}
请帮忙!!
答案 0 :(得分:0)
然后从css中删除这些类。 jQuery仍然会工作。
不要求只有在css中使用的类必须在jquery中使用。
例如:
<div class="someUnknownClass"></div>
即使css中没有定义someUnknownClass,$('.someUnknownClass')
仍然有用。
答案 1 :(得分:0)
我不知道任何允许按照你想要的方式去做的机制。 我建议的工作是将你的事件绑定在anoter css类上并做这样的事情:
$('.classD').addClass('eventClassD').removeClass('classD');
$('.eventClassD').on('myEvent', function(){...});
像这样你仍然会将事件绑定到你的元素,并将摆脱所有的CSS。
答案 2 :(得分:0)
为选择器使用另一个类名。因此,css为classA
,选择器为classX
。
如果您不想应用这些样式。然后,您可以使用$('selctor').css();
来覆盖样式。有点hacky!
要么。
添加一个超越css的类。或者删除包含css的类。
使用:$('selctor').addClass('no_styles');
或$('selctor').removeClass('current_styles');
答案 3 :(得分:0)
你想在不修改JS的情况下这样做吗?没有干净的方法可以做到这一点。但试试这个。
据推测,你会有一些区别于这一特殊元素的东西,以区别于其他元素,其中哪种风格&#39;你想保留。这种差异可能以不同的父容器的形式表现出来。只需复制影响这些类的CSS规则集,并在前父类CSS选择器前加上前类值。
答案 4 :(得分:0)
&#34;基本上,我不想触摸js代码,只有在css前面可以完成某些事情,我的要求才能实现。&#34;
如果这就是您所需要的,那么只需从页面中删除所有css定义。
$("link,style").remove()