added test for removed elements
avoid firing on removed elements
took the best approach I could think to stay away of compatibility problems with older browsers and keep the plugin logic as intact as possible