首页 > 解决方案 > 加载带有 jquery 脚本的完整 PHP 文件

问题描述

问题

我有一个正在处理的项目,我正在使用以下结构:

主文件 (index.php)
  子文件夹
    子文件夹
      Php 文件及其 Jquery 代码

所有子文件夹文件都通过 jquery 加载代码加载以下

$(document).on('click', '.sub_sub_menu', function (e) {
 e.preventDefault()
 //uri = subfolder/subsubfolder/i.php {Assuming}
 uri = $(this).attr('uri')
 $('.system_viewport').load(uri)
})


当我单击某个菜单栏项时,它会很好地加载 php 页面,并且我可以在我的主文件(index.php)页面上执行 php 页面中的所有功能,当我通过单击它们来加载其他文件时他们加载的菜单栏很好,问题是当我尝试返回以前加载的文件时,由于大多数点击事件拒绝触发,地狱被释放。

我的想法

第一次加载文件时,它将 jquery 函数加载到 DOM 再次加载时,它仍然通过创建某种冲突或其他东西将函数加载到 DOM 那里......

标签: phpjquery

解决方案


也许您可以跟踪之前已加载的 uri:

let visitedUrls = [];
$(document).on('click', '.sub_sub_menu', function (e) {
  e.preventDefault()
  //uri = subfolder/subsubfolder/i.php {Assuming}
  uri = $(this).attr('uri');
  if(visitedUrls.indexOf(uri) === -1) {
    $('.system_viewport').load(uri);
    visitedUrls.push(uri);
  } else {
    $('.system_viewport').load(uri + '?excludejs=1');
  }
});

然后在应用程序的 php 端,您可以从基于if($_GET['excludejs'] == '1')或类似的内容中排除 JS 文件?!


推荐阅读