php – 在Yii框架上使用ajaxButton / ajaxSubmitButton阻止加载jQuery资产

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在Yii框架上使用ajaxButton / ajaxSubmitButton阻止加载jQuery资产脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的布局上有jQuery加载资产,我想使用C Html :: ajaxButton / ajaxSubmitButton.
但是当我在运行时使用它与另一个渲染时,它再次加载jQuery资源并产生错误.
如何防止脚本加载?

<?PHP echo CHtml::ajaxSubmitButton( 'Submit',CHtml::normalizeUrl(array('site/AjaxRequest/30')),array(
                                        'error'=>'js:function(){
                                            alert(\'error\');
                                        }','beforeSend'=>'js:function(){
                                            alert(\'beforeSend\');
                                        }','success'=>'js:function(data){
                                            alert(\'data from server: \'+data);
                                        }','complete'=>'js:function(){
                                            alert(\'complete\');
                                        }',//'update'=>'#response',)
                                    );
    ?>

解决方法

这也是IMO非常烦人的问题.我解决方法是创建CClientScript的派生类,并将其用作clientScript组件(您可以覆盖配置文件中的类类型):

'clientScript' => array
(
    'class'                       => 'MyClientScript',),

我的类重写了“registerCoreScript”函数,该函数用于注册Yii包含的jQuery和其他基本脚本.
我在那里做的几乎是添加ajax的检查,如果是的话,不将它传递给父类.
它看起来像这样:

public function registerCoreScript($sName)
{
   if (Yii::app()->request->isAjaxRequest)
      return $this;

   return parent::registerCoreScript($sName);
}

这可以防止在ajax调用期间加载任何核心脚本(并再次添加资源).

您也可以对其他函数执行相同的操作(例如registerScriptFile)

希望有所帮助.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在Yii框架上使用ajaxButton / ajaxSubmitButton阻止加载jQuery资产全部内容,希望文章能够帮你解决php – 在Yii框架上使用ajaxButton / ajaxSubmitButton阻止加载jQuery资产所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:jquery