SmartAdmin 模板页面功能运行两次 Bug

SmartAdmin Template Pagefunction runs twice Bug

我正在 smartAdmin 模板中开发 Web 应用程序,它是完全基于 ajax 的模板,您可以查看演示 here。我在这个模板中遇到了一些困难。当我在某个页面上编写一个 javascript 函数时,它适用于所有页面。

例如

$(document).on('click', '#elementA', function(){
 alert('Hello World');
});

适用于也具有相同 ID 的其他页面元素,很难为所有元素提供不同的 ID,因为它是一个非常大的项目,我从 6 个月开始就在做它,所以我考虑了一下并找出了为每个页面提供唯一 ID 并编写这样的脚本的解决方案。

$(document).on('click', '#pageA #elementA', function(){
   alert('Hello World');
});

我以为我解决了这个问题,但是功能是否停止在其他页面的元素上工作。但是当我第二次访问#PageA 时,该函数运行了两次。实际上模板将所有用户定义的函数存储在本地内存存储中(我想,我不确定这一点)并一直存储,直到我们不刷新整个模板。

好的,经过长时间的研发,我自己解决了这个问题.. 我使用 loadscript() 函数来防止不必要地加载脚本两次..

我把所有的脚本都写到一个文件里了(现在我将有一个页面有两个视图页面。)

早些时候就像.. A.php -> JScript + PHP & HTML 现在就像 A.php -> PHP & HTML, script/A.php -> OnlyJS

因为我正在使用 codeginiter 框架,并且不希望其他人通过 url 访问它也看到 js,所以我使用了这个过程。

我的视图文件中的代码

loadScript("<?php echo site_url('processor/load_script/path_to_folder/script/add'); ?>");

处理器控制器上的功能

public function load_script($path)
{
    $last_segment = count($this->uri->segment_array());
    $path = '';
    for($i=3;$i<=$last_segment;$i++)
    {
        $path .= '/'.$this->uri->segment($i);
    }
    $this->load->view('core/ajax'.$path);
}