【发布时间】:2019-03-29 04:00:07
【问题描述】:
我正在尝试通过以 ver 4.17.47 安装的“bower install eonasdan-bootstrap-datetimepicker#latest --save”下载来集成 eonasdan 日期时间选择器,参考 http://eonasdan.github.io/bootstrap-datetimepicker/
除了模式弹出窗口外,它在所有页面上都能完美运行。浏览器控制台没有问题,当我点击输入框bootstrap-datetimepicker-widget时没有加载-
以下是代码-
Html : input type='text' class="form-control" id='datetimepicker8'
Script : $('#datetimepicker8').datetimepicker();
有什么建议吗?
我正在使用所有必要的库,因为它在我的应用程序的其他页面上运行良好。
我已经尝试使用 jquery 3.2.1/3.3.1 使用 moment.js 2.18.1、moment-timezone 0.5.13、bootstrap 3.3.7、datetimepicker 4.7.47
我正在使用聚合物加载器来加载自定义 *.html 文件以及带有底层 nodejs 结构的 Bower 组件。
所有自定义的html文件都用<dom-module>封装,当父html页面(有popup modal的引用)加载时,它的ready函数和popup modal的ready函数一起被调用(另一个*.html)加载datetimepicker 但是当我点击datetimepicker 输入框时,日历不会显示。在我从浏览器控制台检查时,bootstrap-datetimepicker-widget 没有显示,但是该小部件完美地显示在我的应用程序的其他页面上。
我尝试在浏览器控制台上调试datetimepicker() 函数,并通过跟踪警报函数来了解返回的datetimepicker 对象。
alert(JSON.stringify($('#datetimepicker8').datetimepicker(), null, 4));
在 datetimepicker 不工作的弹出窗口中上述警报的结果与 datetimepicker 在我的应用程序中工作的地方的结果相同,只是没有在弹出窗口上呈现 datetimepicker 日历。
我认为这是浏览器问题,因此尝试使用以下 Chrome 版本: 版本 73.0.3683.86(官方版本)(32 位) 版本 73.0.3683.86(官方版本)(64 位) 版本 72.0.3626.81(官方版本)(64 位) 注意:我的应用程序主要是为 chrome 开发的,我们不支持其他浏览器。
在删除我的 chrome 配置文件后,还尝试在 Incognito Chrome 窗口上使用。
我还尝试在弹出的 *.html 文件中直接包含 cdn js 调用,但在调试时我发现它是从应用程序 jspm 包中引用 nodejs 3.2.1 并从聚合物加载器中引用 datetimepicker,这是完全正确的。
HTML : input type='text' class="form-control" id='datetimepicker8'
Script : $('#datetimepicker8').datetimepicker();
上面的脚本调用被放置在一个就绪函数中。
预期结果:日期时间选择器应加载到输入框。 实际结果:点击输入框 datetimepicker 不加载。
【问题讨论】:
-
您是否在文档中发现任何迹象表明该插件应与 Web 组件和 ShdowDOM 一起使用?我的第一个想法是
$('#datetimepicker8')等同于document.getElementById('datetimepicker8'),并且在ShadowDOM 的组件中不起作用。或者更好的说法是:它会工作,但是,因为它会在文档级别而不是在 ShadowDOM 内部进行查询,所以它要么找不到任何东西,要么找不到你想要的另一个元素。跨度>
标签: javascript polymer