1

我正在尝试开发一个日期选择器。我正在准备一个 JavaScript 字符串中的整个日历并将其附加到一个div元素中。问题是 jQuery click 事件的行为不同。如果我在事件的 .js 文件中编写整个代码$(document).ready()并将该脚本文件添加到 HTML 文件的顶部,则单击事件无法正常工作(意思是,如果我在 3 月份,如果我单击下一步,日历正在导航到下个月四月,但之后,每当我点击它时,我总是得到旧月份)。

如果我在 html 文件的底部(在 body 标记之后)编写整个脚本,它工作正常。

当我将该代码放入 jsFiddle 时。它也在那里工作。我认为他们在页面底部附加了脚本代码。

如果代码在$(document).ready()事件处理程序中,可能会出现什么问题?这是jsFiddle 链接

4

1 回答 1

0

我假设这是在 IE 中发生的。我能够重现它。显示浏览器以“怪癖模式”运行。在这种模式下,indexOf函数 forArray是未定义的。此 JavaScript 错误会阻止日历选择器的正常运行。切换怪癖模式解决了这个问题。

要解决此问题,您可以确保DOCTYPE为页面定义了正确的内容,或者使用类似的元标记<meta http-equiv="X-UA-Compatible" content="IE=edge" />来避免怪癖模式。

我还不确定为什么移动脚本会触发不同的模式。也许 SO 上的其他人知道答案。

于 2012-03-24T07:48:35.053 回答