Yii2 按需加载js或css

本文介绍如何在Yii框架中使用数据块注册JS代码,并实现JS文件和CSS文件的按需加载。通过示例代码展示了直接在视图中添加JS交互功能的方法,以及在对应资产文件中定义函数来动态加载外部JS和CSS资源的技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值