jquery - $().toggleClass(); not working -


here fiddle. trying make own checkbox using <div>, , applying colors $().css(). when click div, trying use $().toggleclass() in click function change background-color #96f226

jquery:

$('div').mouseenter(function(){     $(this).css('background','#656565'); }); $('div').mouseleave(function(){     $(this).css('background','#4a4a4a'); }); $('div').click(function(){     $(this).toggleclass('active'); }); 

html:

<div></div> 

css:

div {     width: 15px;     height: 15px;     background: #4a4a4a;     cursor: pointer; } .active {     background: #96f226 } 

with .css call 'background' property, change corresponding inline style of element, specified attribute. in other words, mouseenter handler turns <div> <div style="background: ##656565">. mouseleave works similar way, it's value of style attribute different.

the problem style rule set in way - within style attribute - has highest specificity 1 applied result of class-match rule (or combination of selectors) given in css ruleset.

that's why don't see changes when class active added element (and it's easy check class added indeed; it's rule that's not accounted).

that problem quite easy fix if remove fiddling inline styles altogether, , use class - mouseenter handler set, , mouseleave remove.

but actually, don't need that: events you're trying process handled browser, in quite way. it's easy leverage: set style rules :hover pseudo-class, this:

div:hover {     background: #656565 } div.active, div.active:hover {     background: #96f226 } 

and here's fiddle play with.


Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

javascript - storing input from prompt in array and displaying the array -