AppAsset.php 引入js的加载顺序 [ 2.0 版本 ]
各位大神,小弟遇到的情况是这样的:
AppAsset.php文件中已经引入了jquery.js
public $js = [
'js/jquery-2.1.3.js',
];
但是页面中的YiiActiveForm和页面加载时进行的事件绑定
$(document).ready(function(){......});
都会报错,而且错误都是jQuery未定义,$未定义等基础错误
解决办法是在view的php文件头部再引入一次jquery
$this->registerJsFile("@web/js/jquery-2.1.3.js");
想问一下AppAsset.php引入文件的顺序是在页面文件之后对么?
有没有什么办法能避免在页面内再引用一次jquery呢?
只有10分,各位大神见谅
共 4 个回答
-
我在开始的时候也遇到过这个问题,说说我的吧,跟1楼类似。
在模板文件里,如果你直接写script就会报错,jquery未定义,但是,在模板文件中$this指向View对象。
View提供一系列注册资源的方法,也就是assets,
具体代码:<?php $jsString = <<<JS $("#login-form").submit(function (){ alert($(this).data('yiiActiveForm').validated); }); JS; $this->registerJs($jsString);?>
这样生成的代码就会生成
$(document).ready(function(){......});
里面,加载在jquery加载之后,$this->registerJs
第二个参数就是POS_READY,意为jquery加载完之后。
tocou2006
注册时间:2015-03-27
最后登录:2015-04-03
在线时长:4小时2分
最后登录:2015-04-03
在线时长:4小时2分
- 粉丝0
- 金钱0
- 威望0
- 积分40