0

わかりました、しばらく探していました...そして、ヘルパー$this->Js->linkを使用してコンテンツをdivにロードするときに、jqueryとcakephpに関連するものを見つけることができませんでした...だから私は私の投稿することにしましたこの素晴らしいサイトで質問してください... 私の最初の質問で、とてもばかげています (私は推測します)。

つまり...メカニックは正常に機能します..コンテンツを「アルゴ」と呼ばれるdivにロードしますが、いくつかのエフェクト(フェードイン)を追加しようとしましたが、これの正しい構文を見つけることができません! 私はケーキで真新しい...それを使用してわずか1ヶ月です。

このいまいましいdivを表示するときに「fadeIn」効果を追加するにはどうすればよいですか? 私は多くのことを試しましたが、これまでのところ、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))));                                                                                              

この巨大なコードは、私が期待していたことを実行しています。また、複数の div を渡すために jquery ヘルパーに編集を追加して、すべてを同時に更新できるようにしました。

ヘルパーをハックしたい場合は、次のコードを使用してください。

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はないようです。

便利なヒントの1つは、ベースURLとその他の便利なケーキ変数をjavascript変数としてページに渡すことです。これをレイアウトに追加します。

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

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