2012-07-16 98 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