0

好的,我已经找了一段时间了......当使用帮助器 $this->Js->link 将内容加载到 div 时,我找不到与 jquery 和 cakephp 相关的任何内容......所以我决定发布我的在这个很棒的网站上提出问题......我的第一个问题很愚蠢(我猜)。

所以......机制工作正常,我的意思是......它将内容加载到一个名为“algo”的div中,但现在我尝试添加一些效果(淡入淡出)并且我无法为此找到正确的语法!我是全新的蛋糕......只有 1 个月大的使用它。

显示这个该死的 div 时如何添加“淡入”效果?我已经尝试了很多东西,但到目前为止,没有任何东西可以让 div 加载具有淡入淡出效果的内容......

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))));

任何帮助将不胜感激!没有人展示带有 cakephp 的 div 示例.. 或者至少我无法找到适合我需要的示例!

顺便说一句,很棒的网站!这些年来它对我帮助很大!

4

2 回答 2

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,这样我就可以同时刷新它们。

如果你们想破解你的助手,这里是代码:

cake/libs/view/helpers/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
于 2012-07-27T20:22:22.500 回答
0

正如 Dunhamzzz 所建议的,我所有的 jQuery 都是手工编写的,从不使用助手。tbh 似乎没有任何意义。

一个有用的提示是将基本 URL 和任何其他有用的蛋糕变量作为 javascript 变量传递到您的页面中。将此添加到您的布局中:

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

echo $this->Html->scriptBlock(<<<EOJS
var baseUrl = '{$baseUrl}';
EOJS
); ?>
于 2012-07-16T15:39:57.810 回答