php – 如何在Yii上的Ajax请求上禁用jQuery自动加载?

前端之家收集整理的这篇文章主要介绍了php – 如何在Yii上的Ajax请求上禁用jQuery自动加载?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下代码生成一个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
    )
  ),),

那么,每次你需要jquery就可以在你的代码之前添加它:

$cs = Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');

那么Yii将会包含jquery(或任何其他脚本)一次,即使你在代码中多次调用它也是如此.

猜你在找的PHP相关文章