If you're so worried about valid CSS, I'd argue that using javascript to implement invalid CSS is just as bad as having the invalid CSS there from the start. Not only are you using invalid CSS, but you're wasting resources to do so.
.. and you're putting style information in the behavior level. If you want opacity, you're going to break one "rule" or another because CSS 3 is so far away. I prefer to keep it in my stylesheet where it belongs