我有以下javascript代码:
$('#s2 a').click(function(){
var cB = $(this);
var f = parseInt(cB.attr('data-f'));
var r = parseInt(cB.attr('data-r'));
var c = parseInt(cB.attr('data-c'));
if (pA == false && !isClickAllowed(f,r,c)) {
return false;
}
// more stuff comes here
}
这使链接无法点击。这一切都有效。我还想删除悬停效果。这个的CSS代码是:
.pc a:hover {
background-color: #FFF;
我认为删除该类会像cB.removeClass('pc');
那样做,但这不起作用。
有关如何执行此操作的任何建议吗?
感谢您的时间
- 编辑 -
嗯,我想我明白为什么它不起作用了。在文档的顶部我有这个:
$(document).ready(function() {
setScale();
$(window).resize(setScale);
if (!('ontouchstart' in document)) {
$('body').addClass('pc');
}
more code here
当在PC上打开页面而不是触摸设备(例如iPad)时,这为所有链接设置.pc a:hover
。我需要禁用此电脑悬停仅在链接上不可点击,如:
if (pA == false && !isClickAllowed(f,r,c)) {
return false;
}
希望这有帮助!
答案 0 :(得分:6)
cB是未指明CSS类的引用的锚,父类将具有类pc
以使其工作。 cB.parent().removeClass('pc');
会这样做。
- 编辑 -
根据下面的博学评论,似乎cb.parents('.pc').removeClass('pc')
或cb.parents().removeClass('pc')
(我没有基准,看看哪个更快)将是全面的解决方案。
对詹姆斯,安东尼和塔德克有好处!
- 编辑2 -
在更新问题后,我建议您在链接中添加另一个类,即clickable
,然后您的CSS就会变为:
.pc a.clickable:hover {
background-color: #FFF;
您可以删除那些您不想显示突出显示的链接上的clickable
类。更好的做法可能是简单地用原始文本替换禁用的链接,或者用标识类替换为跨度的链接,例如disabled_link
如果您想要稍后启用它们的话。{/ p>
答案 1 :(得分:3)
虽然没有提供HTML,但基于代码,cB
似乎不是具有pc
类的元素,而是cB
的祖先。您需要从中删除该类。
如果直接父级是pc
类的唯一祖先,则可以执行以下操作:
cB.parent().removeClass("pc")
如果直接父级以外的一个祖先只有pc
的类而父级没有,则可以执行以下操作:
cB.closest(".pc").removeClass("pc")
如果多个祖先拥有pc
类,您可以使用以下内容:
cB.parents(".pc").removeClass("pc")
最后,如果a
中存在多个.pc
标记,则您无法使用删除该类的方法,因为这会影响a
内的所有.pc
标记
答案 2 :(得分:0)
<p id="example">This is an example.</p>
<script>
document.getElementById('example').style.borderWidth = '4px';
</script>
请注意,borderWidth与border-width不同。这可以用于其他样式。根据经验,拿走破折号并将第二个单词的第一个字母写成大写字母。如果它不起作用,谷歌吧。
答案 3 :(得分:0)
cB.removeClass('pc')确实应该删除aclass。确保您的css在所有情况下都能正常运行。同时尝试定位父
答案 4 :(得分:0)
我会在disabled
规则之后的CSS中添加一个:hover
类,并用禁用的样式覆盖它,这可能是也可能不是默认样式。然后,您可以这样做:
cB.addClass('disabled');
现有解决方案不起作用的原因是因为当父类具有类时,您将从元素中删除该类。
答案 5 :(得分:0)
由于您的CSS问题已经解决,我想指出另一项改进: 我看到你使用cB.attr('data-f')来存储一些数据,但是attr只应该用于有效的HTML属性。您应该考虑使用jQuery数据方法,该方法是为了将非属性数据存储到元素中而创建的 http://api.jquery.com/jQuery.data/