Yii2 按需加载js或css

1、在页面中单独写JS(使用数据块)

<div id="mybutton">点我弹出OK</div>  

<?php $this->beginBlock('test') ?>  
    $(function($) {  
      $('#mybutton').click(function() {  
        alert('OK');  
      });  
    });
    //或
 $('#mybutton').click(function() {  
    alert('OK');  
 });      
<?php $this->endBlock() ?>  
<?php $this->registerJs($this->blocks['test'], \yii\web\View::POS_END); ?> 

2、在对应的/assets/AppAsset.php文件中新增以下函数

/**
     * 定义按需加载JS方法,默认加载在最后
     * @param $view
     * @param $jsfile
     * @param string $type
     */
    public static function addScript($view, $jsfile,$type=View::POS_END) {
        $position = [
            AppAsset::className(),
            'depends' => 'layui\assets\AppAsset',
        ];
        if ($type == View::POS_HEAD){
            $position['position'] = View::POS_HEAD;
        }

        $view->registerJsFile($jsfile,$position);
    }

   //定义按需加载css方法,注意加载顺序在最后
    public static function addCss($view, $cssfile) {
        $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'layui\assets\AppAsset']);
    }

//在视图文件引用:
use \**\assets\AppAsset;

AppAsset::addScript($this, '@web/modules/table/renderjs.js?t=' . time());

版权声明:本文为eddy23513原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。