Простой jQuery в примере CakePHP не работает

#jquery #cakephp

#jquery #cakephp

Вопрос:

Я пытаюсь добавить jQuery в один из моих проектов, но не могу заставить его работать.

/views/layouts/default.ctp

 echo $this->Html->script('jquery-1.6.4.js');
echo $this->Html->script('test.js');
  

/view/test/view.ctp

 <?php echo $html->link('click msg', '#', array('onclick'=>'return false;', 'id'=>'msg-name', 'class'=>'msg-link')); ?>
  

/views/layouts/js/test.js

 $(document).ready(function() 
{
    $('.msg-link').click( function () 
    {
        alert("Thanks for clicking.");
    });
});
  

затем при нажатии кнопки / ссылки должно появиться предупреждение, но оно ничего не делает: (

Также я являюсь консолью отладки Chrome, я вижу эту ошибку:

 /js/jquery-1.6.4.js:-1 Resource interpreted as Script but transferred with MIME type text/html.
/js/test.js:-1 Resource interpreted as Script but transferred with MIME type text/html.
jquery-1.6.4.js:1 Uncaught SyntaxError: Unexpected token <
test.js:1 Uncaught SyntaxError: Unexpected token <
  

Я не совсем уверен, что они означают, и не вижу, как в запросе на складе могут быть ошибки.

Кто-нибудь может помочь, пожалуйста?

Спасибо!

Ответ №1:

вы должны скопировать файлы js в /webroot/js/.

Затем вам нужно установить в вашем ctp-файле это:

 echo $this->Html->script('jquery-1.6.4');
echo $this->Html->script('test');
  

Комментарии:

1. Привет, Чалист, спасибо 🙂 Я только что узнал об этом … если я не пропустил это, это не очень хорошо документировано, которое должно быть помещено в /webroot/js/, а не туда, куда я его поместил /views/layouts/js/

Ответ №2:

Удалите расширение .js.

 echo $this->Html->script('jquery-1.6.4');
echo $this->Html->script('test');
  

Этот метод включения файла javascript предполагает, что указанный файл javascript находится внутри каталога /app/webroot/js .

http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html ?выделите =html#HtmlHelper::script

Комментарии:

1. Привет, спасибо за ответ, попробовал это, и оба не имеют значения, в html он ссылается правильно /js/jquery-1.6.4.js как когда у меня есть файл .js, так и без него: (