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);
}
我正在 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);
}