我有一个js程序,它已经在Joomla 3中成功进行了Ajax调用。现在将其移动到J5,我发现我必须将.fail&.success更改为.fail&.done。现在,当它到达我的程序末尾(以及 ajax xml 信息处理结束)时,它会重新运行我的整个 js 程序,生成第二个 Ajax 调用和第二组结果。它在第二次执行后停止。这可以在https://ottawaotest.ca/oocj4/ooc-events的“即将举行的活动”列表中看到。有没有其他人经历过这种情况,可以给我建议,告诉我要调查什么?我有 2 个警报语句 - 一个是在进入程序时,第二个是最后一个语句。我不知道这与 Ajax 调用有什么关系,但可能有可能。 js 程序是由 Joomla 模块调用的,但我检查过它,它只调用一次。 这是模块代码
<script type="text/javascript" src="files/ooc_events.js"></script>
<link rel="stylesheet" href="files/event_box.css">
<div class="mod_header"><br/><br/>Upcoming Events </div>
<div id="eventsContent"></div>
“eventsContent”的内容被重复。 任何人可以提供的任何帮助将不胜感激。
我已经逐条调试语句,但在 .js 末尾和重新进入之间,它进入了 jQuery 和 sppagebuilder(不属于 J3 站点的一部分)之间的许多语句。对 js 的调用可能是由其中之一完成的,但这不是模块调用,否则我会重复标题,但我没有。
这是 Ajax 调用
jQ.ajax({
url: myURL,
dataType: 'xml'
})
.fail (function(fail) {
// alert ("failed");
jQ('#eventsContent').append(WJRdownMessage);
})
.done(function(xml) {
jQ(xml).find('Event').each(function() {
// alert ("process event");
var eventID = jQ(this).find("Id").first().text();
var eventName = jQ(this).find("Name").first().text();
....... lots of code dealing with each set of data to build htmlResults array then ...
jQ('#resultsContent').append(htmlResults.join(''));
});
它确实成功获取了 xml 形式的所有请求数据。
我发现问题了。该调用是由页面上的另一个模块进行的,该模块是一位程序员同事在不知道我正在做的工作的情况下插入的。我们需要解决的困惑!