使用jQuery脚本加载完整的PHP文件

时间:2018-07-04 09:54:59

标签: php jquery

问题

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

主文件(index.php)
子文件夹
子子文件夹
带有jQuery代码的PHP文件

所有子子文件夹文件均通过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中。

1 个答案:

答案 0 :(得分:0)

也许您可以跟踪之前已加载的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文件?