Bonjour à tous,
Je réalise en ce moment un menu horizontal qui se déploie sur une large div où se situe les sous menu de mon site, j'aimerais que les sous menus soit générés via du javascript (JQuery + Ajax).
J'utilise pour cela la fonction .hover() de JQuery, le problème c'est que lorsque je passe la souris sur un de mes liens, mon fichier Ajax est appelé plusieurs fois, ce qui rend le script très lourd.
Voici mon bout de code javascript :
Le fichier appelé par la fonction Ajax va récupérer dans la base de données les sous menus du menu en question.
Comment je peux faire pour que ma fonction ajax ne soit appelé qu'une fois au survol de la souris ?
Merci de votre aide.
Modifié par Samantha66 (25 Jul 2011 - 18:14)
Je réalise en ce moment un menu horizontal qui se déploie sur une large div où se situe les sous menu de mon site, j'aimerais que les sous menus soit générés via du javascript (JQuery + Ajax).
J'utilise pour cela la fonction .hover() de JQuery, le problème c'est que lorsque je passe la souris sur un de mes liens, mon fichier Ajax est appelé plusieurs fois, ce qui rend le script très lourd.
Voici mon bout de code javascript :
$('ul.menu_h li a.niv1').hover(function(){
var id_menu = $(this).attr('id') ;
if(id_menu != 0){
$.ajax({
type: "POST",
data:{"id_menu": id_menu},
url: "mon_url",
success: function(xml){
if($('infos',xml).find('retour').text() == "true"){
var chaine = '' ;
chaine += '<ul>' ;
$('infos',xml).find('sous_cat').each(function(){
chaine += '<li><a href="'+$(this).find('url').text()+'">'+$(this).find('nom').text()+'</a></li>' ;
});
chaine += '</ul>' ;
$('div.bloc_menu_'+id_menu).append(chaine) ;
}
}
});
}
});
Le fichier appelé par la fonction Ajax va récupérer dans la base de données les sous menus du menu en question.
Comment je peux faire pour que ma fonction ajax ne soit appelé qu'une fois au survol de la souris ?
Merci de votre aide.
Modifié par Samantha66 (25 Jul 2011 - 18:14)