jQuery.data()在IE10中不起作用。还有其他任何实施方式吗?

时间:2013-03-21 18:16:33

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

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

我正在创建一个计算对象,并使用jQuery data method将其附加到textarea。

当在textarea中更改值时,我检索calc对象,使用新值加载它并相应地更新。

除IE10外,所有浏览器都能正常运行。

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

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

我还找到了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 + "" );
}

2 个答案:

答案 0 :(得分:1)

您考虑使用$('#selector').data('foo')吗?

,而不是使用$('#selector').attr('data-foo')

答案 1 :(得分:0)

钥匙必须是小型的。这就是我在IE10中使用它的方法。

替换

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

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