【问题标题】:jQuery.data() is not working in IE10. Any other way to implement?jQuery.data() 在 IE10 中不起作用。还有其他实现方式吗?
【发布时间】:2013-03-11 09:50:54
【问题描述】:

我有一个文本区域,在进行任何更改时,我都需要使用新值和在页面加载时从服务器获取的其他值更改其他标签。

我正在创建一个计算对象并使用jQuery data method 将其附加到文本区域。

当 textarea 中的值发生变化时,我检索 calc 对象,用新值加载它并相应地更新。

除 IE10 以外的所有浏览器都运行良好。

在 IE10 中,浏览器加载 JS 时出现错误:SCRIPT3: Member not found,然后在尝试检索对象时失败。

我在 jQuery 文件本身中读到它与 IE 的 get/setAttribute 问题有关。

我还找到了this documented bug

还有其他方法可以将存储附加到 DOM 元素吗?

我有什么选择?

编辑:我正在添加我的一些代码:

将对象附加到元素上:

myField = $('#url-example');

fullUrl = FullUrl("http://www.example.com/category/article?", something);

myField.data("fullUrl", fullUrl);

检索:

tiedFullUrl = $('#url-example').data('fullUrl');

tiedFullUrl.setUrl(url);

doSomethingWithTheObject(tiedFullUrl);

我正在添加更多信息:

我遇到了与this guy 相同的错误。


**

更多信息:

**

我创建了一个解决方法:

--来自 jquery.1.7.1.js,第 2700 行:

if (!$.browser.msie || $.browser.version < 7) { //my hack
  return ( ret.nodeValue = value + "" );
}

【问题讨论】:

  • “已记录的错误” 与此有什么关系?你在兼容模式下使用 IE 吗?你能提供一些代码吗?
  • 你能显示你正在使用的引发错误的代码吗?我很难相信$.data() 在 IE10 中完全被破坏了。
  • 1.我添加了一些我的代码。 2.在围绕这个bug的讨论中,许多人声称它是在IE10不兼容视图中发生在他们身上的。
  • FullUrl() 返回什么?我不清楚,当你设置值或获取值时浏览器会抛出错误吗?
  • 1.它是一个返回新对象的 ctor。 2.页面加载时抛出“method not found”。当我尝试检索和使用时,抛出关于未创建对象方法的错误(因为它未定义)。

标签: jquery cross-browser internet-explorer-10


【解决方案1】:

您是否考虑过使用$('#selector').attr('data-foo'),而不是$('#selector').data('foo')

【讨论】:

  • 关于 .data() 的某些东西会在某处引起一些问题,但我完全忘记了它是什么。这个答案应该可以解决您的问题
  • 你究竟在数据属性中加载了什么?
  • @JordanBrown - 我正在尝试在其中存储一个对象。
【解决方案2】:

键必须是小型大写字母。这就是我让它在 IE10 中工作的方式。

替换

myField.data("fullUrl", fullUrl);
myField.data("fullurl", fullUrl);

tiedFullUrl = $('#url-example').data('fullUrl');
tiedFullUrl =$('#url-example').data('fullurl');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 2016-03-25
    • 1970-01-01
    • 2022-11-24
    • 2014-10-27
    • 2020-06-28
    • 2022-11-03
    • 2023-03-11
    相关资源
    最近更新 更多