我在布局文件中尝试了这个
(文档)$。就绪(函数(){ 警报( “你好”); } );
如何让这件简单的事情发挥作用?我在布局文件中包含jquery,使用 echo $ this-> headScript() - > appendFile(....)
有没有办法按原样使用jquery?不使用zendx?
答案 0 :(得分:3)
布局文件中的以下内容如何:
$this->headScript()->appendFile('/js/jquery.js');
$this->headScript()->appendScript('$(document).ready(function() { alert("hello"); });','text/javascript');
我最常做的是:
$this->headScript()->appendFile('/js/jquery.js');
$this->headScript()->appendFile('/js/application.js');
$this->headScript()->appendScript('application.init();', 'text/javascript');
echo $this->headScript();
然后是application.js:
var application = {
init : function() {
//do here anything you like
}
}
如果你想调用一个特定的函数,让我们说你的控制器你首先将这个函数添加到你的应用程序JS:
var application = {
init : function() {
//do here anything you like
},
bindChangeEventToSomething : function() {
$('a').click(function() {});
}
}
然后在您的控制器中,您可以添加您的操作:
$this->view->headScript->appendScript(
'application.bindChangeEventToSomething()',
'text/javascript'
);
答案 1 :(得分:1)
你应该能够在不使用ZendX的情况下包含jQuery。 如果您希望将它包含在每个页面中,请将其添加到引导程序或控制器中(如果它是特定的)。 以下是将其置于引导程序中的示例:
protected function _initView(){
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->headScript()->appendFile('/js/jquery.min.js');
}
如果您希望在一个控制器/操作中包含一个js文件,您可以将它包含在控制器的init / action中。
$this->view->headScript()->appendFile('/js/index.js');