我使用以下代码生成一个ajax请求:
echo CHtml::dropDownList('teamA','',EnumController::getTeamOption(),array( 'empty' => '(Team / Single)','ajax' => array( 'type'=>'POST','url'=> $url,'update'=>"#resultA",//'data'=>"js:$('#teamA').hide().fadeIn()" ) ) );
在我的主要布局中,我有以下几点:
<?PHP Yii::app()->clientScript->scriptMap=array('jquery.js'=>false);?> <?PHP Yii::app()->clientScript->scriptMap=array('jquery.min.js'=>false);?> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
Yii正在从资产中加载jQuery副本,然后直接从Google加载另一个副本.我只想使用Google副本,并强制Yii不会从资产载入自己的副本.我该怎么做?
在Yii中,您不应该在主布局中对任何JavaScript信息进行硬编码.
Yii可以确定是否已经包含客户端脚本(javascript),但是对于核心脚本(如jquery或jqueryui),您必须修改配置文件中的这些包.
打开main.PHP配置文件,并在CClientScript组件中添加所需的所有js软件包(您应该将其添加到组件中),如下所示:
'clientScript'=>array( 'packages'=>array( 'jquery'=>array( 'baseUrl'=>'//ajax.googleapis.com/ajax/libs/jquery/1.8/','js'=>array('jquery.min.js'),'coreScriptPosition'=>CClientScript::POS_HEAD ),'jquery.ui'=>array( 'baseUrl'=>'//ajax.googleapis.com/ajax/libs/jqueryui/1.8/','js'=>array('jquery-ui.min.js'),'depends'=>array('jquery'),'coreScriptPosition'=>CClientScript::POS_BEGIN ) ),),
$cs = Yii::app()->getClientScript(); $cs->registerCoreScript('jquery');