Как правильно добавить javascript в jQuery's $ (document). Уже с Yii - PullRequest
3 голосов
/ 01 февраля 2012

Я использую Yii Framework.На нескольких страницах я хочу добавить пользовательский интерфейс, используя jQuery.Я хочу, чтобы результат был что-то вроде:

$(document).ready(function() {
     ... my code
});

Я нашел совет использовать что-то вроде этого:

Yii::app()->clientScript->registerScript('testscript',"
    alert('hello world');
",CClientScript::POS_READY);

Однако у меня довольно большой код JavaScript (около 100 строк)и даже трудно прочитать его, когда он внутри строки PHP (без подсветки синтаксиса в редакторе, без свертывания кода).

Должен быть какой-то лучший способ сделать это?

Я бы не сталне возражаете даже поместить код в отдельный файл .js, но я понятия не имею, как загрузить его в обработчик document.ready?

Ответы [ 2 ]

5 голосов
/ 03 февраля 2012

Изолируйте ваш код в класс / функцию в файле JS, зарегистрируйте его с помощью registerScriptFile, затем вызовите этот класс / метод с помощью registerScript (затем он будет добавлен к готовому методу, который использует CClientScript.

2 голосов
/ 01 февраля 2012

Ну, я никогда не использовал yii, но при поиске в Google я обнаружил, что вы можете добавить javascript в yii.

Я парень .net, но эта ссылка может вам помочь,http://www.yiiframework.com/forum/index.php?/topic/4778-what-is-the-best-form-to-load-jquery/

Я просто догадываюсь, но это, вероятно, будет выглядеть так ...

 Yii::app()->clientScript->registerScriptFile('/myScript.js');

А в myScript.js вы бы написали ...

 $(document).ready(function() {
    alert('hi'); 
    //js code goes here
 });

Теперь я просто догадываюсь, но вам, вероятно, придется включить плагин jquery перед всем этим.Так что это, вероятно, что-то вроде ...

(PHP)

<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?>
<?php Yii::app()->clientScript->registerScriptFile('/myScript.js'); ?>

(JQuery)

$(document).ready(function() {
    alert('hi'); //script goes here
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...