我试图将 JS 文件插入到视图中,但它们插入的顺序错误。
在我的 default.ctp 中我有这个
$this->Html->script(array(
'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js',
'global'
), array('inline'=>false));
echo $this->fetch('script');
在我看来,我有这样的:
$this->Html->script('jquery.fancybox.pack', array('inline' => false));
但当我查看源代码时,结果是这样的:
<script type="text/javascript" src="/js/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="/js/global.js">
这显然是错误的顺序,因此 jQuery 插件无法工作。
我究竟做错了什么?
一般来说,我会在布局中回显所需的脚本(而不是将它们添加到缓冲区中),然后再回显脚本块(缓冲脚本)。这可确保首先回显每个视图所需的脚本。您的 default.ctp 看起来像这样:
// get echoed immediately
echo $this->Html->script(array(
'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js',
'global'
));
// everything else from the view, echoed after
echo $this->fetch('script');
或者,您可以为前面的脚本指定一个特殊的块。
echo $this->Html->script(array(
'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js',
'global'
), array('block' => 'firstScripts');
echo $this->fetch('css');
echo $this->fetch('firstScripts');
echo $this->fetch('script');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)