#jquery #cakephp
#jquery #cakephp
Вопрос:
Я читаю руководство CakePHP о реализациях Js, и я пытаюсь запустить некоторый jQuery в div, но, на мой взгляд, я не могу заставить его работать. У меня подключены все мои помощники и jQuery.
В качестве теста я просто пытаюсь заставить этот элемент исчезнуть в:
$this->Js->get('#resultsWrapper');
$this->Js->effect('fadeIn');
<div id="resultsWrapper">THIS IS A FADE IN TEST</div>
Загружается в обычном режиме..
Комментарии:
1. Пожалуйста, покажите в своем коде, как вы включаете jQuery.
2. bin.cakephp.org/view/179167123
3. Действительно ли javascript получает выходные данные в браузер? Где? Правильно ли он отформатирован?
4. Росс, нет, проблема в том, что я не могу заставить его выводиться в исходный код браузера. Но если я повторяю это с помощью php, это отображается правильно (но не в исходном коде).
Ответ №1:
Убедитесь, что элемент display: none;
Это позволит ему фактически исчезать, а не просто загружаться
Комментарии:
1. Я могу повторить это: …$this-> Js-> effect(‘fadeIn’); и это выводится на экран, но если я не повторяю это, это не отображается в исходном коде??
2. где вы ее запускаете. Вам нужно запустить его в вашем представлении, а не в вашем контроллере. Также вы хотите запустить его после добавления элемента в DOM, поэтому вызовы должны выполняться после html
3. я запускаю ее в своем search.ctp. действие search() находится в plans_controller. я не могу заставить скрипт отображаться, независимо от того, что я делаю до сих пор .. если пробовал это и по умолчанию — никаких кубиков.
4. я запускаю это в своих представлениях?? я тестировал в макете по умолчанию и в режиме поиска.
Ответ №2:
Я решил эту проблему, изменив синтаксис вызова прототипа. Похоже, что предложенный в руководстве get() не работает должным образом (по крайней мере, судя по многочасовым экспериментам, которые я проводил)..
Вот как я решил эту проблему: (обратите внимание на разделы загрузки и успеха).
<?php
echo $ajax->submit('Submit',
array('url'=> array('controller'=>'records',
'action'=>'add'), 'update' => 'ajax_div',
'evalScripts' => true,
'loading' => 'Element.show('busy-indicator')',
'success' => 'Element.hide('busy-indicator')'
));
?>