Javascript AJAX停止加载同一站点不同的PHP id
所以我有一个计划,我正在为一个学校项目做。它应该是像PasteBin一样的。因此在右边有一个不同的分区(Uued koodid),显示最新的粘贴。单击时,他们应该显示使用AJAX刷新左侧div所包含的内容。这只工作4次,然后停止,但URL仍在更改。刷新后,它会再次更改并再次工作4次 在main.js中,我有Javascript AJAX停止加载同一站点不同的PHP id,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,所以我有一个计划,我正在为一个学校项目做。它应该是像PasteBin一样的。因此在右边有一个不同的分区(Uued koodid),显示最新的粘贴。单击时,他们应该显示使用AJAX刷新左侧div所包含的内容。这只工作4次,然后停止,但URL仍在更改。刷新后,它会再次更改并再次工作4次 在main.js中,我有 ... $.ajaxSetup({ cache: false }); ... $(".uuedKoodid").click(function () { $(".left-conten
...
$.ajaxSetup({ cache: false });
...
$(".uuedKoodid").click(function () {
$(".left-content").load(document.location.hash.substr(1));
});
...
编辑:
其他AJAX函数也可以工作。如果我登录,我可以完美地在设置和配置文件之间切换,但当您用新代码(来自ajax调用)替换右菜单时,仍然无法观看新代码。您不会在
.uuedKoodid
项上再次附加click事件,因此它们不会执行任何操作。您需要再次附加事件或按如下方式附加事件:
$(document).on('click', '.uuedKoodid', function () {
$(".left-content").load(document.location.hash.substr(1));
});
编辑:
正如您所注意到的,这将导致小问题<代码>onclick在浏览器运行标准链接操作之前运行事件。首先加载ajax,然后浏览器更改地址。这样你就落后了一步。比起延迟读取(setTimeout
)更好的解决方案是直接从链接读取地址:
$(document).on('click', '.uuedKoodid', function () {
var url = $(this).attr('href');
$(".left-content").load(url.substring(url.indexOf("#")+1));
});
为什么要使用
setTimeout
和0
作为超时?\n我的错,这是旧的粘贴。我编辑!谢谢现在它部分起作用了。Ajax不断刷新,但它落后于1步。当我点击第一次-第一次加载时,点击第二次-无,点击第三次-第二次加载,点击第四次-第三次加载。添加设置超时以等待URL帮助!非常感谢。