2012-10-05 156 views
9

我已经标记了使用此规则切换悬停css样式。当面板内有一个复选框时,我想删除背景图像样式。这可能吗?尽管失败,我已经尝试了以下内容。删除css悬停样式

CSS:

.StaffMode .day ul li.standard a:hover table { 
     background:url("test.png"); 
    } 

JS:

$("li.test table li").hover(
     function() { 
      if($(this).children(':checked')) { 
       alert('need to remove the background image style'); // shows as expected 
       $(this).children('a').removeClass('hover'); // this doesnt work? 
      } 
     } 
    ); 
+1

':hover'是一个伪类,不是JavaScript可以删除的真实类。 – KRyan

+0

你可以发布你的HTML请或更好的jsFiddle – Chin

+0

我做过小提琴,但它真的很复杂的标记,所以很难发布任何有意义的东西。 –

回答

18

你需要做的就是把一些限制你的:hover规则,并让您的JavaScript更改元素,使其不再适用什么。事情是这样的:

.has-hover:hover 
{ 
    /* do whatever */ 
} 

然后你的JavaScript做到这一点:

$(this).children('a').removeClass('has-hover'); 

你不能删除:hover但你可以删除has-hover类,由于规则要求双方,这将防止.has-hover:hover规则被应用。