页面加载时仅加载一个JavaScript函数。
我有一个带有一些JavaScript函数的网页,设置为在document.ready上加载 然而,如果我有其中的4个,似乎只有最后一个加载 这是我的密码页面加载时仅加载一个JavaScript函数。,javascript,jquery,Javascript,Jquery,我有一个带有一些JavaScript函数的网页,设置为在document.ready上加载 然而,如果我有其中的4个,似乎只有最后一个加载 这是我的密码 $(document).ready(function () { var nation = "ireland"; var irelandMatches = []; var matchOrderReversed = false; loadDoc(); showRSS("Irish Times");
$(document).ready(function ()
{
var nation = "ireland";
var irelandMatches = [];
var matchOrderReversed = false;
loadDoc();
showRSS("Irish Times");
loadWeather();
loadTwitter();
loadDoc()和loadTwitter()方法会加载,但weather和showRSS不会加载。如果我把loadTwitter()注释掉,那么天气会很好
如果有什么不同,所有这些方法都使用XMLHttpRequest,每个方法中都定义了XMLHttpRequest,如下所示
function loadYouTube()
{
var html = "";
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{ // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var ret = xmlhttp.responseText;
var spl1 = ret.split("~");
for (i = 0; i <= 10; i++)
{
var spl2 = spl1[i].split("*");
var current = "<a href='" + spl2[1] + "'><img src='" + spl2[2] + "' width='50' height='50'>" + "<a href='" + spl2[1] + "'>" + spl2[0] + "</a> <br/>";
html += current;
}
$("#yt").html(html);
}
}
xmlhttp.open("GET", "getyoutube.php?", true);
xmlhttp.send();
}
函数loadYouTube()
{
var html=“”;
if(window.XMLHttpRequest)
{
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
var ret=xmlhttp.responseText;
var spl1=ret.split(“~”);
对于(i=0;i当您在loadYouTube()
示例中定义xmlhttp
时,由于缺少var
,您在全局范围内这样做。因此loadDoc()
设置window.xmlhttp
,然后loadWeather()
不久将其覆盖,接着是loadTwitter()
在加载函数中尝试以下操作:
function loadYouTube()
{
var html = "";
// define xmlhttp in block scope
var xmlhttp;
// rest of function...
}
那么,你确定你没有用另一个函数删除一个函数html($(“#yt”).html(html);
),或者你在每个函数中使用了不同ID的不同元素吗?这很可能是运行时错误。你只需打开浏览器中的开发工具(Firefox和chrome:ctrl+shit+i)即可检查这一点然后切换到控制台。然后,只需重新加载页面。很难或不可能从上面的代码中找到错误,因为无法预测Ajax响应的返回结果。是的,每个函数都写入不同的DIV。还可以在每个函数的顶部添加var xmlhttp;
functions@user3102785为了它的工作这修复了它,因为您意外地创建了一个名为xmlhttp
的全局变量。这意味着您的每个其他函数都覆盖了该值,因此您只能看到使用它的最后一个函数的结果。