0

プロジェクトに ZendX_jQuery と Datatables を使用しようとしています。私のレイアウトファイルには次のものがあります:

  if($this->jQuery()->isEnabled()){
   $this->jQuery()->setLocalPath('/js/jquery/js/jquery-1.4.2.min.js')
    ->setUiLocalPath('/js/jquery/js/jquery-ui-1.8.4.custom.min.js')
    ->addStylesheet('/css/smoothness/custom.css')
    ->addJavascriptFile('/js/jquery.dataTables.js');
   echo $this->jQuery();
  }

ZendX ヘルパーを使用するオブジェクトをレンダリングすると、datatables オブジェクトは正常にレンダリングされます。ただし、オブジェクトがない場合、テーブルはレンダリングされません。

例:

日付ピッカーのために機能するデータテーブル:

<link rel="stylesheet" href="/css/smoothness/custom.css" type="text/css" media="screen" />
<script type="text/javascript" src="/js/jquery/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/js/jquery/js/jquery-ui-1.8.4.custom.min.js"></script> 
<script type="text/javascript" src="/js/jquery.dataTables.js"></script>

日付ピッカーがないため、データテーブルが壊れています:

<link rel="stylesheet" href="/css/smoothness/custom.css" type="text/css" media="screen" /> 
<script type="text/javascript" src="/js/jquery/js/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="/js/jquery.dataTables.js"></script> 

ここでの明らかな違いは、他の jQuery オブジェクトがないと、ZendX は jQuery UI ファイルをヘッダーに配置しないことです。強制的にそうさせる方法はありますか?すべてのページで確実に UI スクリプト ファイルを取得するために、UI スクリプト ファイルを 2 回宣言する必要はありません。

ありがとう、

ジョー・チン

4

1 に答える 1

0

それ以外の場合は内部で行われます。

JavaScript にアクセスするには、jQuery() 機能を利用する必要があります。両方のヘルパーは、 jQuery()->enable()および jQuery()->uiEnable()を呼び出した依存関係を既にアクティブ化しています [...]

ソース

これは jQuery のビュー ヘルパーを参照しているため$this->view->jQuery()->enable()、コントローラー アクション内または$this->jQuery()->enable()ビュー内にあります。

于 2010-09-12T16:03:11.790 に答える