2010-04-28 15 views
8

Il mio unbind non funziona.jQuery unbind ('hover') non funziona

$("img.hoverable").hover(ChangeImage, ChangeBack); 
$("a img.hoverable").unbind('hover'); 

Il codice HTML potrebbe essere come questo

<img class="hoverable" src="something.jpg"/> 
<a href="#"><img class="hoverable" src="something.jpg"/></a> 

Quando mi passa il mouse sopra il secondo HTML, ChangeImage è ancora licenziato.

Non sono sicuro se lo sto utilizzando correttamente, qualcuno può consigliare per favore?

risposta

15

Prova

$("img.hoverable").unbind('mouseenter mouseleave'); 

Il metodo .hover() lega i gestori per entrambi MouseEnter ed eventi mouseLeave. Quindi, per smembrare, dovrai smettere di mouseenter e mouseleave.

+0

Grande. Grazie, @rahul. –

+0

Questo non funziona quando lo provo –

0

Prova questo:

$("img.hoverable").hover(ChangeImage, ChangeBack); 
$("img.hoverable").unbind('hover'); 
5

hover è un evento pseudo per mouseenter e mouseleave. Quindi devi separare questi.
Oppure se nessun altro gestore è collegato, chiamare .unbind() senza parametri (rimuove qualsiasi gestore).

$("a img.hoverable").unbind(); 
0

.hover è un wrapper per mouseenter e mouseleave.

Prova a chiamare unbind su quelli.