如何在不使用zendx的情况下将jquery与zend框架一起使用?

时间:2011-09-06 14:04:10

标签: php jquery zend-framework

我在布局文件中尝试了这个

(文档)$。就绪(函数(){ 警报( “你好”); } );

如何让这件简单的事情发挥作用?我在布局文件中包含jquery,使用 echo $ this-> headScript() - > appendFile(....)

有没有办法按原样使用jquery?不使用zendx?

2 个答案:

答案 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');