2011-05-15 3 views
0

Voici mon problème.ajax ne se charge pas au premier clic

J'ai un lien qui déclenche la fonction ajax pour charger le contenu dans un div. Cela fonctionne bien dans Chrome et FireFox. Cependant, il y a un problème dans IE.Il réagit drôle. Si je clique sur un lien pour la première fois depuis que la page est chargée, il ne fonctionnera pas comme prévu. Il va charger sur le deuxième clic ou si je souris sur la zone qui devrait être mise à jour. Et seul IE réagit comme ça.

My Javascript function to query data 

function req_frame(box,user,action,product) { 
var xhr = getXMLHttpRequest(); 
    xhr.onreadystatechange = function() { 

     if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { 
    parent.frames[user].document.getElementById(box).innerHTML=xhr.responseText; 
     } 

    }; 

    var sVar1 = product; 
    var sVar3 = encodeURIComponent(user); 
    var sVar2 = encodeURIComponent(action); 


    xhr.open("GET", "ajax_http.php?variable1=" + sVar3 + "&variable2=" + sVar2 + "&variable3=" + sVar1, true); 
    xhr.send(null); 

} 

Je sais que ce code fonctionne bien c'est bien! même quand le var sont un lil mélangé

Et j'appelle cette fonction en utilisant événement déclencheur avec Jquery comme

$("#ajphoto").live('click', function(){ req_frame("framebox","contpic","ajphoto","product"); })  

Toute personne WANA aide? Merci

+2

Pourquoi ne pas utiliser http://api.jquery.com/jQuery.ajax/ ?? – Galled

+0

ne pas réinventer la roue lol – Val

Répondre

1

essayez ceci:

function req_frame(box,user,action,product) { 
    var result = $(parent.frames[user].document.getElementById(box)); 
    result.load("ajax_http.php", 
    {variable1:user, variable2:action, variable3:product}); 
} 
+0

ce look bien, mais je ne veux pas réécrire le tout! Je vais vérifier ça. Hum je ne suis pas un expert JS mais est-ce un rappel utilisant Jquery? si oui, comment puis-je inclure jquery dans mon propre fichier js? – MadeInDreams

+0

merci pour votre vote, Zero G. Vous devez avoir déjà inclus jQuery, parce que vous avez utilisé $ ("# ajphoto"). Live ('click', function() {req_frame ("framebox", "contpic", " ajphoto "," product ");})' avant. Quoi qu'il en soit, un moyen facile d'inclure jquery est de mettre 'dans votre section – yitwail

Questions connexes