2012-07-16 28 views
0

好吧,我一直在尋找一段時間...我無法找到與jquery和cakephp相關的任何內容,當使用助手$ this- > Js-> link ...所以我決定在這個真棒網站發佈我的問題...我的第一個問題和它如此愚蠢(我猜)。試圖使用jquery使用CAKEPHP加載div中的內容

所以...機械工作正常,我的意思是..它將內容加載到一個名爲「算法」的div中,但現在我嘗試添加一些效果(淡入淡出),即時通訊無法找到正確的語法!即時通訊全新的蛋糕...只有1個月大的使用它。

如何在顯示這個該死的div時添加「fadeIn」效果?我曾嘗試很多東西,但到目前爲止沒有任何東西能讓任何與效果淡入股利加載內容...

echo $this->Js->link('Categoria 1', array('controller' => 'Categories', 'action' => 'categorias1'), array('update' => '#algo')); 

這完全加載了一堆,我有,即時通訊要求DIV中1類圖片.. 。我應該如何添加淡入效果?我添加了一些瘋狂的事情,看看他們的工作,但......沒了......沒有運氣

我甚至嘗試了這個瘋狂的一個:

echo $this->Js->link('Categoria 1', array('controller' => 'Categories', 'action' => 'categorias1'), array('update' => '#algo', array('effect' =>array('fadeIn', array('speed' => 'slow'), true)))); 

任何幫助將apreciated!沒有人用cakephp顯示div的例子..或者至少我無法找到一個適合我需求的例子!

偉大的網站順便說一句!這些年來它幫助我很多!

+1

就我個人而言,我認爲你最好是手動編寫jQuery,如果你需要手動重新控制它。 JsHelper有它的用途,但它是你學會生活沒有一段時間。 – Dunhamzzz 2012-07-16 15:07:13

+0

從來沒有想過這樣......你可能是對的。但是如果有人知道如何通過框架做到這一點,請讓我知道!我非常好奇這個! – 2012-07-16 15:14:25

+0

底線 - 生成的HTML看起來應該是什麼樣的,你會得到什麼?這就是我們真正需要知道的。 – Dave 2012-07-16 15:36:21

回答

1

我終於管理自己來完成我試圖做的,我想與你們我就是這樣做分享到:

echo $this->Js->link('categoria 1', array('controller' => 'Categories', 'action' => 'categorias1'),array('update' => '#categorias', 'evalscripts' => true, 'before' => $this->Js->get('#algo,#categorias2')->effect('fadeOut', array('buffer' => false)), 'complete' => $this->Js->get('#categorias')->effect('fadeIn', array('buffer' => false))));                        

這種巨大的這段代碼是做我期待的,我也加了一些編輯到我的jQuery助手爲了傳遞他們不止一個div,所以我可以讓他們在同一時間刷新。

,如果你們想在這裏砍你的助手是代碼:

蛋糕/庫/視圖/助理/ jquery_engine.php

找到這一行:

$success .= $this-jQueryObject . '("' . $options['update'] . '").html(data);'; 

,並把它替換爲:

if(is_array($options['update'])){ 
       $success .= 'var temp = ' . $this->jQueryObject . '("  <div/>").html(data);'; 
       foreach($options['update'] as $divId){ 
        $success .= $this->jQueryObject . '("' . $divId . '").html('  . $this->jQueryObject . '("' . $divId . '", temp).html());'; 
       } 
      } else { 


      $success .= $this->jQueryObject . '("' . $options['update'] .  '").html(data);'; //linea que ya estaba 

      } 
      //termina agregado 
0

正如Dunhamzzz所建議的那樣,我手寫所有的jQuery並且從不使用助手。似乎沒有任何一點tbh。

一個有用的提示,將基本URL和任何其他有用的蛋糕變量傳遞到您的頁面作爲一個JavaScript變量。添加到您的佈局:

<?php 
$baseUrl = Router::url('/'); 

echo $this->Html->scriptBlock(<<<EOJS 
var baseUrl = '{$baseUrl}'; 
EOJS 
); ?> 
+0

你的意思是我的ajax佈局? – 2012-07-16 17:20:28

+0

你可以,但作爲基地Url永遠不會改變,你可以將其添加到您的主佈局。它只需要設置一次 – RichardAtHome 2012-07-17 08:58:45