使用Yii在jQuery $(document).ready中添加javascript的正确方法是什么?

时间:2012-02-01 00:08:56

标签: jquery yii

我正在使用Yii框架。在几页上我想用jQuery添加一些自定义UI的东西。我希望结果如下:

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

我找到了使用这样的建议:

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

但是,我有一个相当大的javascript代码(大约100行),当它在PHP字符串中时很难读它(在编辑器中没有语法高亮,没有代码折叠)。

必须有更好的方法吗?

我不介意将代码放在单独的.js文件中,但我不知道如何将其加载到document.ready处理程序中?

2 个答案:

答案 0 :(得分:5)

将代码隔离到JS文件中的类/函数中,使用registerScriptFile注册,然后使用registerScript调用该类/方法(然后将其添加到CClientScript使用的ready-method中。

答案 1 :(得分:2)

好吧,我从未使用过yii,但在Google上搜索我发现你可以在yii中添加javascript。

我是.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
 });