jQuery(...).yiiGridView不是一个函数。

6

我在使用Yii的网格视图时遇到了问题。某种原因导致它似乎无法正确加载,尽管脚本已经包含(我可以在源代码中看到它)。

这是HTML头部分:

<script src="fileadmin/static/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="/module/public/assets/80c0553/gridview/jquery.yiigridview.js" type="text/javascript"></script>
<script type="text/javascript">jQuery(function($) {
 jQuery('#grid-downloads').yiiGridView({'ajaxUpdate':['grid-downloads'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'def-table','selectableRows':1,'enableHistory':false,'updateSelector':'{page}, {sort}','filterSelector':'{filter}','pageVar':'page'}); 
 });
</script>

我遇到了错误:TypeError: jQuery(...).yiiGridView不是一个函数 有任何想法,问题可能出在哪里?

2
可能是因为jQuery或者那个库被多次引用了。 - Developerium
1
谢谢!实际上这真的是问题所在,不知何故我在页面底部也第二次包含了jQuery,这破坏了代码。 - Asped
1
将jQuery JS文件的包含移动到layount/main.php文件的头部。我把它放在我的主题的页脚部分,当我把它移到头部时,jQuery/JS函数调用开始工作 :) - iltaf khalid
2个回答

13
我找到了问题。
其实问题是,某种方式我在页面上将jquery包含了两次——第二次是在页脚,所以我之前没有发现。
Jquery在页面中只需要出现一次,并且需要位于头部。

0

正如Asped所说,您必须注意资产管理,并避免在资产js中加载jquery,在类似于'yii\web\JqueryAsset'的公共依赖中再次加载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接