Javascript SmartAdmin模板页面功能运行两次
我正在smartAdmin模板中开发web应用程序,该模板完全基于ajax,您可以查看演示。我在这个模板中遇到了一些困难。当我在某个页面上编写一个javascript函数时,它可以在所有页面上运行 比如说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个月,所以我想了想,找到解决方案,给每个页面
$(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);
}