AJAX 停止加载同一站点不同的 PHP ID


AJAX stop working on loading same site different PHP id

所以我有一个网站,我正在为一个学校项目做。它应该像PasteBin一样。所以在右边有一个不同的div(Uued koodid),显示最新的粘贴。单击时,它们应该显示它们包含的内容,使用 AJAX 刷新左侧div。这只工作了 4 次,然后停止,但 URL 仍在更改。刷新后,它会再次更改并再次工作 4 次。

总的来说.js我有

...
$.ajaxSetup({ cache: false });
...
$(".uuedKoodid").click(function () {
    $(".left-content").load(document.location.hash.substr(1));
});
...

编辑:其他 AJAX 函数也可以工作。如果我登录,我可以完美地在设置和配置文件之间切换,但仍然无法观看新代码

当您用新代码(来自 ajax 调用)替换右侧菜单时,您不会再次在.uuedKoodid项上附加单击事件,因此它们不会执行任何操作。您需要再次附加事件或像这样附加它:

$(document).on('click', '.uuedKoodid', function () {
  $(".left-content").load(document.location.hash.substr(1));
});

编辑:正如您注意到的,这会导致小问题。 onclick事件在浏览器运行标准链接操作之前运行。首先加载 ajax,然后浏览器更改地址。这样你就落后了 1 个动作。比延迟读取(setTimeout)更好的解决方案,我认为是直接从链接读取地址:

$(document).on('click', '.uuedKoodid', function () {
  var url = $(this).attr('href');
  $(".left-content").load(url.substring(url.indexOf("#")+1));
});