智能管理员模板页面功能运行两次错误



我正在smartAdmin Template中开发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来查看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);
}

最新更新