2011-05-15 90 views
0

这是我的问题。ajax第一次点击不加载

我有一些链接,触发ajax函数加载一个div中的内容。它在Chrome和FireFox中运行良好。然而在IE中有一个问题,它反应有趣。如果我在页面加载后第一次点击链接,它不会按预期工作。它会在第二次点击时加载,或者如果我将鼠标悬停在应该更新的区域上。而且只有IE就这样反应。

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); 

} 

我知道这段代码工作正常!即使寿的VAR混淆在一起

一律而且我使用事件与jQuery触发像

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

任何瓦纳帮助调用这个函数?由于

+2

为什么不使用http://api.jquery.com/jQuery.ajax/? – Galled 2011-05-15 14:52:57

+0

不要重新发明轮子lol – Val 2011-05-15 16:21:35

回答

1

试试这个:

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

这看起来不错,但我不想重温整个事情!我会检查出来的寿。嗯,我不是一个JS专家,但是使用Jquery的回调?如果是的话,我如何将jquery包含在我自己的js文件中? – MadeInDreams 2011-05-15 21:32:59

+0

感谢您的投票,Zero G。由于您使用了'$(“#ajphoto”),因此您必须已经包含jQuery。live('click',function(){req_frame(“framebox”,“contpic”,“ ajphoto“,”product“);})'之前。无论如何,包含jquery的简单方法是将' '在你的部分 – yitwail 2011-05-16 01:04:14

相关问题