Toutes les réponses de ce fil de discussion sont bonnes et pourraient fonctionner. Mais pour le plaisir de le faire, voici une approche différente.
D'après votre code et votre question, ce que vous faites en fait, c'est supprimer le comportement de survol de l'élément. Ce qui devrait être fait comme ci-dessous :
$(document).ready(function(){
$('img#slide').animate({"opacity" : .7});
$('img#slide').hover(function(){
$(this).stop().animate({"opacity" : 1});
}, function(){
$(this).stop().animate({"opacity" : .7});
});
$('img#slide').click(function(){
$(this).unbind('hover');
});
});
Ce qui peut être remanié pour permettre de changer de comportement d'une manière originale :
$(document).ready(function(){
var over = function(){
$('img#slide').stop().animate({"opacity" : 1});
};
var out = function(){
$('img#slide').stop().animate({"opacity" : 0.7});
};
var on = function(){
$('img#slide').hover(over, out).one('click', off);
}
var off = function(){
$('img#slide').unbind('hover').one('click', on);
};
$("img#slide").one('click', on);
out.call();
});
Remarque : je n'ai pas testé cette méthode (je suis au travail), mais vous voyez l'idée.