我有一个问题我发现很难调试,当firefox从iframe中加载我的代码时,它似乎只出现在firefox上。我不太了解浏览器差异,并且使这项工作的问题是间歇性的。我已经在javascript中跟踪了这个错误,我没有使用chrome。
TypeError:$(...)。autocomplete(...)。data(...)为null
现在,我认为正在调用的相关代码来自这样的javascript自动完成功能。
$("#field").data( "ui-autocomplete" )._renderItem = function( ul, item ) { ... }
令我困惑的是它似乎是一个间歇性的firefox bug,我无法在chrome上重现它。有没有人对这里发生的事情有任何见解?
N.B。我读过this,this和几个类似的问题,但我的问题是.data返回null,而不是.data("autocomplete")
是undefined
...
提前致谢。
答案 0 :(得分:1)
你可以提供一些jsFiddle或具体的例子吗?很难说出问题所在。
无论如何,你可以用以下方法解决问题:
if( $("#field").data() ){
var fieldAuto = $("#field").data( "ui-autocomplete" );
if( fieldAuto ){
fieldAuto._renderItem = function( ul, item ) { ... };
}
}
ui-autocomplete
取决于jQuery版本,因此您可能必须更改它
答案 1 :(得分:1)
根据您使用的jquery ui的版本,它将是“自动完成”或“ui-autocomplete”。
var autoComplete = input.data("ui-autocomplete");
if(typeof(autoComplete) == "undefined")
autoComplete = input.data("autocomplete");
autoComplete._renderItem = function(ul, item) {....}
如有任何进一步的问题,请检查并告知我们。
干杯...... :)