我有一个 MVC4 项目并且在使用 Modernizr 时遇到问题。我想测试一下是否支持html输入类型日期。如果没有,则加载 kendoUI(类似于 jquery-UI)以显示我使用日期输入类型作为日期选择器控件的所有实例。仅当不支持日期的输入类型时,我才使用下面的脚本加载我的剑道 css 和 js 文件。
<script>
Modernizr.load({
test: Modernizr.inputtypes.date,
nope: ['/Content/Kendo-styles/kendo.common.min.css',
'/Content/Kendo-styles/kendo.default.min.css',
'/Scripts/kendo/kendo.web.min.js'],
complete: function () {
$('input[type=date]').kendoDatePicker({
format: "dd/MM/yyyy"
});
}
});
</script>
我把它放在我页面的脚本部分(不是_Layout/master,而是在下一层)。它可以工作,但我会闪烁。它似乎加载了我的脚本,然后在运行完整功能之前显示我的页面,因此先显示一个文本框,然后再显示大约。半秒后将日期选择器呈现在其位置。
如果我删除完整的函数并将以下脚本添加到我的文档就绪函数中,它有时会失败。在这种情况下,我可以看到(在浏览器开发人员工具 - 网络中)剑道脚本已下载但尚未执行,因此无法识别 kendodatepicker。在这种情况下,我只能假设准备好的文档将在 Modernizer 完成之前运行。我这个对吗?下面是我的文档就绪代码。
$(function () {
if (!Modernizr.inputtypes.date) {
$('input[type=date]').kendoDatePicker({
format: "dd/MM/yyyy",
});
}
}
有谁知道这个问题的解决方案,或者我正在做一些愚蠢的事情..