YII2.0 jQuery(…).activeform is not a function in 終極解決方案

暮木_發表於2019-02-16

今天終於把困擾我很久的報錯解決掉了。
首先找到 vendoryiisoftyii2webJqueryAsset.php檔案

<?php
namespace yiiweb;
class JqueryAsset extends AssetBundle
{
    public $sourcePath = `@bower/jquery/dist`;
  /*  public $js = [
        `jquery.js`,
    ];*/
}

把這段註釋掉,其實不註釋也不要緊啦~只不過頁面上會多載入一次jquery.js,下面才是重要的
最重要的來了
在同級目錄下 也就是 vendoryiisoftyii2webYiiAsset.php

class YiiAsset extends AssetBundle
{
    public $sourcePath = `@yii/assets`;
    public $js = [
        `yii.js`,
    ];
    public $depends = [
       ** `yiiwebJqueryAsset`,**
    ];
}

可以看到這有個依賴 ,這個依賴的就是 剛剛上面的JqueryAsset的名稱空間~現在只要把這個名稱空間改掉就好了,只要改這一個地方就好了,因為yii.activeForm.js應該是依賴的yii.js的名稱空間 ~ 雖然我全域性也沒搜到yii.activeForm.js在哪裡出現過,反正不要管他就行了,接下來把它

   public $depends = [
        `appassetsAppAsset`,
    ];

改成這樣就行了 依賴在 web同級目錄下的 assets/AppAsset.php中

<?php
namespace appassets;
use yiiwebAssetBundle;
class AppAsset extends AssetBundle
{
    public $basePath = `@webroot`;
    public $baseUrl = `@web`;
    public $css = [
        `css/bootstrap.min.css`,
        `css/iconfont.css`,
        `css/bootsnav.css`,
        `css/style.css`,
    ];
    public $js = [
        `js/vendor/jquery-1.11.2.min.js`,
        `js/vendor/bootstrap.min.js`,
        `js/comm.js?v1`,
      ];

    public static function addScript($view, $jsfile)
    {
        $view->registerJsFile($jsfile, [AppAsset::className(), `depends` => `appassetsAppAsset`]);
    }

    //定義按需載入css方法,注意載入順序在最後
    public static function addCss($view, $cssfile)
    {

        $view->registerCssFile($cssfile, [AppAsset::className(), `depends` => `appassetsAppAsset`]);
    }
}
?>
 

這是我的appasset.php就是這樣的了~現在開啟頁面就不會再看見討厭的jQuery(…).activeform is not a function 了

相關文章