briancherne / jquery-hoverIntent

hoverIntent jQuery Plug-in

Home Page:https://briancherne.github.io/jquery-hoverIntent/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

handlerOut not triggered when domElement is removed dynamically

clp-amsiq opened this issue · comments

Setting up hoverIntent with an object to access a dynamic element.
If this dynamic element is removed from dom while hovering (hadnlerIn is triggered and active) the handlerOut is never triggered.

In our case this result in a dropdown box frozen to the screen until refresh.

commented

Thanks for reporting this! Can you please create a minimal JSFiddle that simply demonstrates the issue with the most recent version of the plugin? This will help with debugging and finding a fix. Thanks!

Not sure how bad this bug is.
It can be argued that the responsibility is in the hand of the user not the library. I have worked around it in our current project. However... In this fiddle https://jsfiddle.net/ed3564k1/46/ if you'll hover on the rendered text and keep the cursor hovering, Youll end up having doubled the over() function, and once the element is removed these 2 extra element are stuck in the layout

commented

Thanks for the Fiddle!

It indeed looks like expected behavior. When the element has been removed from the DOM, no mouseleave event is fired. Also, if an element is dynamically added under the pointer, then mouseenter is fired. In your example, you don't even have to move the mouse, and over() will be executed a second time due to this. (The same happens if you use .hover(over, out), as expected.)

Please let me know if there's something I may have missed, but if not, I'll close this issue. Thanks again for taking the time to create an issue, and thanks for using the plug-in!