我正在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时,这个函数会运行两次。实际上,模板将用户定义的所有函数存储在本地内存存储中(我想,我对此并不确定),并且一直在存储,直到我们不刷新整个模板。
发布于 2018-06-29 11:16:50
好吧,经过长时间的研发,我自己解决了这个问题..。我使用loadscript()函数来防止不必要地加载两次脚本。
我把所有的脚本都写进了一个文件中(现在,我将为一个页面创建两个视图页)。
早些时候就像是..。A.php -> JScript + PHP和HTML现在它就像A.php -> PHP和HTML,script/A.php -> OnlyJS
由于我使用的是码分器框架,而且不希望其他人也通过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);
}https://stackoverflow.com/questions/51096791
复制相似问题