2016-03-10 108 views
1

由于页面速度优化,我加载了jQuery和其他JavaScript最后的版本如何在CakePHP 2.x中推迟内联jQuery

现在我必须作出的视图一个jQuery脚本块(用PHP混合),但jQuery函数显然是因为jQuery是加载之前加载它不会被识别。

我想:

$this->Html->scriptStart(array('inline' => false)); 

,但它甚至不加载它的源代码。

为了调试我想:

$this->Html->scriptStart(array('inline' => true)); 

它做负载,但因为它说,内联。对我的需求没有好处。

在所有其他脚本和整个布局加载后,如何“推迟”inline javascript并最后加载?

其中一个选择是使用JavaScript做到这一切,但我也会在那里使用PHP,这就是为什么它在视图中。

回答

1

不要忘记你的布局,包括:

<? echo $this->fetch('script');?> 

在您看来,以下现在应该工作:

<? $this->Html->scriptStart(array('inline' => false)) ?> 
    //Js goes here 
<? $this->Html->scriptEnd() ?> 
+0

啊,是的,谢谢! '<? echo $ this-> fetch('script');?>'在布局中丢失了。 – jIsles

0

裹在你准备好DOM功能jQuery代码

document.addEventListener("DOMContentLoaded", function(event) { 

    }); 
+0

是不是'$(function({})'仍然是一个jQuery函数本身?它不起作用,因为jQuery尚未加载。 – jIsles

+0

sory updaded我的回答 – madalinivascu