gpt4 book ai didi

javascript - jQuery 的响应延迟(还有其他一些奇怪的现象)

转载 作者:行者123 更新时间:2023-12-01 01:49:39 25 4
gpt4 key购买 nike

我从 jQuery 收到了令人难以置信的回复,我希望有人可以帮助我。我有一个简单的问题...我正在设置 HTML 表单的隐藏字段的“值”(又名 <input type='hidden'> 表单加载时)。我有一个包含三个隐藏字段的表单,其中两个工作正常。第三个...这就是问题所在:

一旦表单完成加载(是的,它已经加载并且可见......作为前两个隐藏字段已加载并由 jQuery 成功设置的间接证据),我运行以下代码(仅将相关片段显示为最后一个字段是设置为“今天”的日期):

case "today":
SetFieldValue (targetElement , Date.today().toString("yyyy-MM-dd HH:mm:ss") );
console.log ('Setting ' + jQuery(targetElement).attr('id') + ' to "today": ' + Date.today().toString("yyyy-MM-dd HH:mm:ss") );
break;

SetFieldValue 是我编写的一个小函数,用于允许设置 DOM 元素,无论它是什么类型。代码如下:

function SetFieldValue ( domObject, value ) {
// as a safety function, check if a string representation of the domObject was passed in and convert it to a jQuery object if it was
if ( jQuery.type(domObject) === "string") {
domObject = jQuery(domObject);
}

if ( jQuery.inArray (domObject.prop('tagName').toLowerCase(),['input' , 'select' , 'textarea']) >= 0 ) {
console.log ("setting to value attribute: " + value);
domObject.attr('value',value);
console.log ("now set to: " + domObject.attr('value') + "(" + domObject.attr('id') + ")" );
} else {
console.log ("setting to html attribute");
domObject.html( value );
}
return domObject;
}

请注意 console.log 消息,因为这对于理解问题的严重性非常重要。当我运行它时,这是我在控制台上得到的内容:

enter image description here

现在我在“today” case 语句的最后一行设置了一个断点(也称为“break;”行)。根据控制台消息,一切正常。看来 DOM 元素#activity-start_time 已被设置。好吧,这就是奇怪的地方。

我做的第一件事是测试对“targetElement”的引用,调试器控制台给我的第一件事是一个空数组:

empty set

什么?这很奇怪。当我思考几秒钟后,突然它就解决了我所期望的问题(我没有将其重新输入控制台,它只是从空集更改为您在下面看到的内容):

and now for something completely different

现在 targetElement 完全符合我的预期,我使用 jQuery 进行了简单的检查,以确保 #activity-start_time 的 DOM 元素报告相同的值。您可以看到上面的结果。它与 targetElement 完全相同,只是它没有值。什么?!?

我完全迷失了。任何帮助将不胜感激。

附:我会注意到其他人建议使用 .prop 而不是 .attr 两者的行为似乎完全相同。

最佳答案

我知道我没有提供足够的背景信息让人们真正深入研究这个问题,但我最终解决了它。问题出在哪里?这真的很傻……不是一直都是吗?无论如何,这只是问题“id”中的 DOM 元素不唯一的情况。咕噜。总是那些你随后忽视的显而易见的事情会给你带来麻烦。

无论如何,感谢您的耐心和帮助。

关于javascript - jQuery 的响应延迟(还有其他一些奇怪的现象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681484/

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