2010-09-10 30 views
0

Je suis aux prises avec mon hover jquery combiné avec $ .post.jQuery.hover avec AJAX ne fonctionne pas correctement

Mon but était de créer un tas de boutons de sélection et si je le survolais, une image changerait (un chemin vers cette image serait chargé par $ .post). L'image passerait à sa valeur par défaut lors du passage au curseur.

Si vous cliquez sur le bouton de sélection, cela changera l'image de manière permanente.

Le problème est que l'image est parfois modifiée de façon permanente, même en vol stationnaire. Essayez-le vous-même au link text Essayez de survoler furieusement les sélections pendant un moment et l'image ne changera pas.

Comment puis-je résoudre ce problème s'il vous plaît?

var origpic; 
var klik; 
var inputval; 
var newpic; 
var origbnazev; 
var cesta = "/ajaxobrazek.php"; 
$("input[name='barva']").hover(function() { 
    klik = 0; 
    inputval = $(this).val(); 
    origbnazev = $("#bnazev").text(); 
    origpic = $("#kocarekimg").attr("src"); 
    $.post(cesta, {dodavatel_id : "<?php echo $row['dodavatel_id']?>", barva_cislo : inputval},  

    function(data){ 
     $("#kocarekimg").attr("src","/images/maly-"+data+".jpg"); 
    }); 
    $.post("/ajaxbarva.php", {barva_cislo : inputval}, function(data){ 
      $("#bnazev").text(data); 
     }); 

    },function(){ 
    if (klik == 0) { 
    $("#bnazev").text(origbnazev); 
    $("#kocarekimg").attr("src",origpic);} 
    }); 

    $("input[name='barva']").click(function() { 
    klik = 1; 

    $.post(cesta, {dodavatel_id : "<?php echo $row['dodavatel_id']?>", barva_cislo : inputval}, 

    function(data){ 
    $("#kocarekimg").attr("src","/images/maly-"+data+".jpg"); 
    origpic = "/images/maly-"+data+".jpg"; 
    }); 

    }); 

    //thumbnails 
    $(".imgtn").hover(function() { 
    origpic = $("#kocarekimg").attr("src"); 
    newpic = $(this).attr("src"); 
    newpic = newpic.replace("tn-","maly-"); 
    $("#kocarekimg").attr("src",newpic); 
    },function(){ 
    $("#kocarekimg").attr("src",origpic); 
    }); 
+1

J'espère que votre code est mieux formaté dans votre fichier JS. Vous devriez essayer de le garder aussi propre que possible - il est beaucoup plus facile de repérer les erreurs de syntaxe. –

Répondre

1

Je n'ai aucun problème avec Chrome, Firefox ou IE. La seule chose que je vois, c'est que le site n'est pas aussi réactif qu'il le devrait, et - franchement parlant - je ne comprends pas pourquoi vous ne cachez pas les refs d'images une fois qu'elles sont chargées.

Votre script effectue un appel ajax à chaque vol stationnaire, c'est un non-sens.

+0

Eh bien, j'ai fait la mise en cache comme vous l'avez dit. Si je survole lentement toutes les sélections pour charger toutes les images-références dans un tableau, alors quand je fais quoi que ce soit, il fonctionne correctement. Mais si je fais un mouvement rapide avant cela (ajax en cours d'utilisation) il se vissera à nouveau :-(. – Jan