Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
页面上的多个jquery ajax不工作_Jquery_Ajax_Colorbox - Fatal编程技术网

页面上的多个jquery ajax不工作

页面上的多个jquery ajax不工作,jquery,ajax,colorbox,Jquery,Ajax,Colorbox,我在一个页面上有两个ajax请求。两者在单独的页面上都可以正常工作,但当它们都在同一页面上时,第一个页面运行后,其中一个页面就会停止工作 我正在为一个请求使用Colorbox插件,这很好用。另一个是我自己组装的(我是jquery新手,所以可能会有错误),如果我先运行它,它就可以工作。但一旦激活了Colorbox,它就会停止工作 页面在这里:代码如下 如果你能给我指点我的错误,我会非常感激的,谢谢 <script type="text/javascript"> <!-- $(do

我在一个页面上有两个ajax请求。两者在单独的页面上都可以正常工作,但当它们都在同一页面上时,第一个页面运行后,其中一个页面就会停止工作

我正在为一个请求使用Colorbox插件,这很好用。另一个是我自己组装的(我是jquery新手,所以可能会有错误),如果我先运行它,它就可以工作。但一旦激活了Colorbox,它就会停止工作

页面在这里:代码如下

如果你能给我指点我的错误,我会非常感激的,谢谢

<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!哈哈)啊,这真是一个梦想!谢谢你的帮助,现在完全有道理了。我检查了每个脚本中的重复名称,但没有意识到它会这样处理。