Mau*_*ice 2 javascript jquery removeclass
我有以下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
}
Run Code Online (Sandbox Code Playgroud)
这使链接无法点击.这一切都有效.我还想删除悬停效果.这个CSS代码是:
.pc a:hover {
background-color: #FFF;
Run Code Online (Sandbox Code Playgroud)
我认为删除类会像:cB.removeClass('pc');但这不起作用.
有关如何做到这一点的任何建议?
感谢您的时间
- 编辑 -
嗯,我想我明白为什么它不起作用.在文档的顶部我有这个:
$(document).ready(function() {
setScale();
$(window).resize(setScale);
if (!('ontouchstart' in document)) {
$('body').addClass('pc');
}
more code here
Run Code Online (Sandbox Code Playgroud)
.pc a:hover当在PC上打开页面而不是触摸设备(例如iPad)时,这将设置所有链接.我需要禁用这个电脑悬停只在链接不可点击,如:
if (pA == false && !isClickAllowed(f,r,c)) {
return false;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
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;
Run Code Online (Sandbox Code Playgroud)
并且您可以删除clickable那些您不想显示突出显示的链接上的类.更好的做法可能是简单地用原始文本替换禁用的链接,或者用标识类替换为跨度的链接,即disabled_link如果您希望以后可以选择启用它们.