我将js函数插入到html中,现在我从HTML中取出JS代码来分隔js文件,这导致JS函数未定义错误?为什么?以及如何解决它?
@(Html.Kendo().Grid<Model>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
})
.Events(ev =>
{
ev.DataBound("initMenus");
})
)
<script>
function initMenus(e) {
$(".templateCell").each(function () {
eval($(this).children("script").last().html());
});
}
</script>
现在我将js函数分离到test.js:
<script src="~/js/test.js"></script>
@(Html.Kendo().Grid<Model>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
})
.Events(ev =>
{
ev.DataBound("initMenus");
})
)
我的test.js
function initMenus(e) {
$(".templateCell").each(function () {
eval($(this).children("script").last().html());
});
}
我确信test.js的路径是正确的。
答案 0 :(得分:0)
浏览器兑现
浏览器可以兑现test.js文件,尝试在.js文件中添加一些版本控制。
基本示例
<script src="~/js/test.js?v=1"></script>
每次更改.js文件
时,都会增加此值按F5通常不会强制浏览器获取新的.js文件
答案 1 :(得分:0)
尝试将js移动到下面:
如果以前使用此代码顺序,你应该这样做,即使是在另一个js文件中
@(Html.Kendo().Grid<Model>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
})
.Events(ev =>
{
ev.DataBound("initMenus");
})
)
<script src="~/js/test.js"></script>