2012-10-05 8 views
9

Ich habe Markup, die den Hover CSS-Stil mit dieser Regel schaltet. Wenn es ein Kontrollkästchen im Panel gibt, möchte ich den Hintergrundbildstil entfernen. Ist das möglich? Ich habe Folgendes versucht, obwohl es fehlschlägt.entfernen CSS Hover-Stil

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' ist eine Pseudo-Klasse, keine echte Klasse, die JavaScript entfernen kann. – KRyan

+0

Kannst du bitte deinen HTML-Code posten oder besser ein jsFiddle – Chin

+0

Ich habe versucht, Geige, aber es ist wirklich kompliziert markieren, so ist es ziemlich schwer, etwas Sinnvolles zu posten. –

Antwort

18

Was Sie tun müssen, um etwas Beschränkung auf :hover Regel gesetzt wird, und haben Ihr JavaScript das Element ändern, damit es nicht mehr. Etwas wie folgt aus:

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

und dann JavaScript tut dies:

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

Sie können nicht die :hover entfernen, aber Sie können die has-hover Klasse entfernen, und da die Regel beide erfordert, wird dies verhindern die .has-hover:hover Regel wird angewendet.