问题
My unbind does not work.
$("img.hoverable").hover(ChangeImage, ChangeBack);
$("a img.hoverable").unbind('hover');
The HTML could be like this
<img class="hoverable" src="something.jpg"/>
<a href="#"><img class="hoverable" src="something.jpg"/></a>
When I hover over the second HTML, ChangeImage is still fired.
I am not sure if I am using it correctly, can anyone please advise?
回答1:
Try
$("img.hoverable").unbind('mouseenter mouseleave');
The .hover() method binds handlers for both mouseenter and mouseleave events. So inorder to unbind you will have to unbind mouseenter and mouseleave.
回答2:
hover
is a pseudo event for mouseenter
and mouseleave
. So you have to unbind these.
Or if no other handler is attached, call .unbind()
without parameters (removes any handler).
$("a img.hoverable").unbind();
回答3:
Try this:
$("img.hoverable").hover(ChangeImage, ChangeBack);
$("img.hoverable").unbind('hover');
回答4:
.hover is a wrapper for mouseenter and mouseleave.
Try calling unbind on those.
来源:https://stackoverflow.com/questions/2727570/jquery-unbindhover-does-not-work