页面上的多个jquery ajax不工作
我在一个页面上有两个ajax请求。两者在单独的页面上都可以正常工作,但当它们都在同一页面上时,第一个页面运行后,其中一个页面就会停止工作 我正在为一个请求使用Colorbox插件,这很好用。另一个是我自己组装的(我是jquery新手,所以可能会有错误),如果我先运行它,它就可以工作。但一旦激活了Colorbox,它就会停止工作 页面在这里:代码如下 如果你能给我指点我的错误,我会非常感激的,谢谢页面上的多个jquery ajax不工作,jquery,ajax,colorbox,Jquery,Ajax,Colorbox,我在一个页面上有两个ajax请求。两者在单独的页面上都可以正常工作,但当它们都在同一页面上时,第一个页面运行后,其中一个页面就会停止工作 我正在为一个请求使用Colorbox插件,这很好用。另一个是我自己组装的(我是jquery新手,所以可能会有错误),如果我先运行它,它就可以工作。但一旦激活了Colorbox,它就会停止工作 页面在这里:代码如下 如果你能给我指点我的错误,我会非常感激的,谢谢 <script type="text/javascript"> <!-- $(do
<script type="text/javascript">
<!--
$(document).ready(function(){
$(function() {
$('#parkride').change(function () {
$.ajax({
type: "POST",
url: "http://dev.thetram.net/inc/parkingfinder_script.asp",
dataType: "application/x-www-form-urlencoded",
data: "Action=GetPR&Val=" + $("#parkride").val(),
async: false,
success: function(msg) {
$('#output').html("<li>" + msg + "</li>");
}
});
return false;
});
});
$(function() {
//if submit button is clicked
$('form#frm_journeyplanner #submit').click(function () {
//get form values
var str = $("form#frm_journeyplanner").serialize();
$.ajax({
type: "POST",
url: "http://dev.thetram.net/inc/journeyplanner/jp_testscript.asp",
dataType: "application/x-www-form-urlencoded",
data: str,
async: false,
success: function(msg) {
$('#results').html(msg);
$.colorbox({inline:true, href:"#results", opacity:0.6, innerWidth:620, innerHeight:580, title:"Find tram times",
onOpen:function(){ $("#results").show(); }, //make sure results show in the modal window
onClosed:function(){ $("#results").hide(); } //stop results from displaying on the main page
});
}
});
return false;
});
});
}); // end of doc ready
-->
</script>
尝试删除
async: false
线路。这告诉jQuery同步运行请求,这会阻止浏览器,直到请求完成。您没有说哪个脚本不工作
我想它是连在越野车上的。如果是这样的话,在Chrome9(dev)中,这个对我来说很好。我已经调试过了,很清楚问题出在哪里 第二个ajax请求将注入另一个具有相同id=“output”的HTML元素(本例中为DIV),这将导致后续调用的第一个ajax查询将结果放入该DIV中,而不是您想要的UL中 我怎么知道的?我使用了Google Chrome提供的调试工具。我注意到$(“#output”)(我为此制作了一个watch表达式)起初“指向”UL,但一旦第二个ajax请求完成,这个表达式就突然指向DIV元素。然后我检查了第二个ajax请求的返回值,实际上它是一个id=“output”的DIV元素 别忘了——当你说$(“#output”)时,你可能会得到多个id=“output”的元素。如果您只需要具有该id的UL元素,那么应该指定该id,否则您将返回具有该特定id的所有元素 简言之,在第一个ajax查询结束时,您需要:
$('ul#output').html("<li>" + msg + "</li>");
$('ul#output').html(“”+msg+” ”);
如果我在两个面板上都移除它,则Colorbox将停止工作。如果我只是在另一个调用中删除它,则没有区别任何单个“异步”调用都会阻止浏览器。异步通常不是一个好主意。你能找到颜色盒的替代品吗?对不起,那没有多大帮助!是的,这是我遇到问题的parkride。这很有趣,这对我来说不起作用Firefox@sje397当前位置他说它们分为不同的页面,他提供的示例页面包含了这两个页面。显然,这个问题更微妙,因为它在我的开发版Chrome上工作。我刚刚在Opera和Safari中测试过它,同样的问题也很奇怪。我刚刚在IE9测试版中试用过,而且。。。它起作用了。它也适用于Firefox4.0B7。我所有的测试都是在一台PC上进行的(我是一台PC!哈哈)啊,这真是一个梦想!谢谢你的帮助,现在完全有道理了。我检查了每个脚本中的重复名称,但没有意识到它会这样处理。