gpt4 book ai didi

javascript - 我正在使用两个 onready() 处理程序创建然后隐藏一个 jquery 时间条目,它会导致 IE7 和 Firefox 中出现严重错误

转载 作者:行者123 更新时间:2023-11-30 06:09:36 24 4
gpt4 key购买 nike

我正在 onready() 处理程序中创建一个 jquery 时间条目,并将其隐藏在 jquery 中的另一个 onready() 处理程序中。 (在两个不同的 onread() 处理程序中调用代码的原因是时间条目是通过可重用的 Django 小部件渲染器创建的,并通过本地屏幕应用程序逻辑隐藏。)

如果您尝试在隐藏的输入字段上创建 jquery 时间条目,则 jquery 时间条目会出现严重错误。以下代码将在 IE7 和 Firefox 上导致 fatal error 。如果我 hide() 创建条目后一切正常,但我无法控制我的两个 onready() 处理程序的顺序(这是由于无法解决的框架问题。)这是一个错误吗在时间条目中,还是浏览器中的未定义行为?有没有一种优雅的方法可以解决这个问题而无需特定的 hack 来解决这个问题?

<html>
<head>
<script type="text/javascript" src="jquery_ui/jquery-1.3.js"></script>
<script type="text/javascript" src="jquery_ui/ui.core.js"></script>
<script type="text/javascript" src="jquery_time_entry/jquery.timeentry.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#id_testTimePicker').hide();
});
$(document).ready(function(){
var id = "#id_testTimePicker";
$(id).timeEntry({spinnerImage: '%sjquery_time_entry/timeEntry.png'
, timeSteps: [1, 5, 1]});
$(id).timeEntry('setTime', new Date());
});
</script>
</head>
<body>
<input id="id_testTimePicker"></input>
</body>
</html>

更新:在上面的代码中,实际上只有“setTime”命令导致了浏览器错误。如果我将其更改为 $(id).setVal(str),其中 str 为小部件设置了正确的时间格式,那么一切正常。

最佳答案

在第二个就绪的处理程序中,在调用 timeEntry 之前包含对“.show()”的调用,然后在之后再次调用“.hide()”。

也就是说,timeEntry 会关心它是否可见似乎很奇怪。这真的不重要,所以我猜这是 timeEntry 中的错误。

编辑:如果您在第二个处理程序中不知道它是否应该隐藏,只需事先使用“$(id).is(':hidden')”查询元素的状态并相应地进行操作.

关于javascript - 我正在使用两个 onready() 处理程序创建然后隐藏一个 jquery 时间条目,它会导致 IE7 和 Firefox 中出现严重错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/463383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com