Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SmartAdmin模板页面功能运行两次_Javascript_Angularjs_Ajax_Smartadmin - Fatal编程技术网

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

Javascript SmartAdmin模板页面功能运行两次,javascript,angularjs,ajax,smartadmin,Javascript,Angularjs,Ajax,Smartadmin,我正在smartAdmin模板中开发web应用程序,该模板完全基于ajax,您可以查看演示。我在这个模板中遇到了一些困难。当我在某个页面上编写一个javascript函数时,它可以在所有页面上运行 比如说 $(document).on('click', '#elementA', function(){ alert('Hello World'); }); 其他页面的元素也有相同的id,这是很难给所有元素不同的id,因为这是一个非常大的项目,我工作了6个月,所以我想了想,找到解决方案,给每个页面

我正在smartAdmin模板中开发web应用程序,该模板完全基于ajax,您可以查看演示。我在这个模板中遇到了一些困难。当我在某个页面上编写一个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'); ?>");
loadScript(“”);
处理器控制器上的函数

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);
}
公共函数加载\u脚本($path)
{
$last_segment=count($this->uri->segment_array());
$path='';
对于($i=3;$iuri->段($i);
}
$this->load->view('core/ajax'.$path);
}