gpt4 book ai didi

javascript - typeof jQuery.data() 错误?

转载 作者:行者123 更新时间:2023-11-29 18:34:51 25 4
gpt4 key购买 nike

我正在跟踪我的代码中的一个神秘问题。此“错误”发生在通过 jQuery 的 .delegate() 绑定(bind)的 事件处理程序 中:

my.$table_body.delegate('.wf-dropdown', 'change', function(e){
parent_row_element = $(e.target).closest('tr')[0];

if( typeof $.data(parent_row_element, 'changed') == 'undefined' )
$.data(parent_row_element, 'changed', {});

$.data(parent_row_element, 'changed').wf_id = e.target.value;
// .. more code
});

您不需要知道其中一些变量的定义位置以及它们的用途,神秘的事情发生在检查 undefined 值时。我显然会检查是否已经有一个对象附加到 parent_row_element,如果没有,则创建它。似乎 typeof $.data(anything) 以一种我无法描述的方式失败了。如果附加了像 Firebug 这样的调试器,它会正确评估 undefined 并且一切正常,没有调试器,对 .wf_id 的赋值总是会抛出,因为对象是未定义的,因为它未创建。

如果我使用这个语句,它会完美地工作:

if(!$.data(parent_row_element, 'changed') )
$.data(parent_row_element, 'changed', {});

这就是为什么我猜这是一个错误。还是我在这里忽略了什么?

我可以重现此行为:

点击时抛出错误,使用 typeof
http://www.jsfiddle.net/5cEVf/

工作正常,没有 typeof
http://www.jsfiddle.net/5cEVf/3/

最佳答案

升级到 1.4.2 之后,它已修复。

如果你提醒 typeof 的结果,你会在 1.4.2 中得到 object

关于javascript - typeof jQuery.data() 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245932/

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