【问题标题】:jQuery UI autocomplete works in Firefox but not in IEjQuery UI 自动完成在 Firefox 中有效,但在 IE 中无效
【发布时间】:2010-03-16 16:07:18
【问题描述】:

jQuery UI 1.8rc3 中的新自动完成小部件在 Firefox 中运行良好。它在 IE 中根本不起作用。有人可以帮帮我吗?

HTML:

<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">

Javascript:

$("#ctrSearch").autocomplete({
    source: "ctrSearch.do",
    minLength: 3,
    focus: function(event, ui){
        $('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
        return false;
    },
    select: function(event, ui){
        $('#ctrId').val(ui.item.ctrId);
        return false;
    }
});

结果(IE 8):

红色框是jQuery创建的&lt;ul&gt;元素。

我也收到此错误:

线路:116
错误:参数无效。

当我在 IE8 脚本调试器中打开它时,它会在 jquery.min.js 的第 116 行突出显示 f[b]=d。请注意,我使用的是托管在 Google 服务器 (https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js) 上的 1.4.2 版 jQuery。

我已经尝试删除一些选项,但即使我在没有选项或只有源选项的情况下调用 .autocomplete(),我仍然得到相同的结果。

再一次,它可以在 Firefox 中运行,但不能在 IE 中运行。有什么建议吗?

谢谢。

更新:按照建议,我使用 jquery.js(而不是 jquery.min.js)并在第 4618 行得到错误。请参阅下面的 jitter 答案。请参阅前几天发布的this other Stack Overflow question

更新 2: 我发现 jQuery UI 自动完成使用了无效的属性 this.element.height,而它应该使用函数 this.element.height()

【问题讨论】:

  • 彼得。不要使用缩小版的 jQuery 进行调试。如果您换成 jQuery.js,则可能有比“f[b]=d on line 116 of jquery.min.js”更多的信息。
  • spender 是对的。在开发时换掉缩小版本与完整的 jQuery ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js 以获得更好的调试信息
  • 如果我有时间我可能会在明天研究一下。目前没有可用的 IE8
  • 感谢抖动。期待您的意见。

标签: javascript jquery jquery-ui jquery-ui-autocomplete


【解决方案1】:

如果我理解这一点,您所指的行似乎是style 函数中jquery.1.4.2.js 中的第4618 行。这只能意味着 Autocompleter 插件尝试设置 IE8 不理解或不允许以这种方式访问​​/更改的样式值。

style[ name ] = value; //style == elem.style from the passed in element

【讨论】:

  • 我发现 jQuery UI 自动完成使用了无效的属性 this.element.height,而它应该使用函数 this.element.height()
  • 好吧,你想通了。您是否对 jQuery UI 问题跟踪器进行了错误报告?
【解决方案2】:

我在完全相同的行上有完全相同的错误,但交易完全不同。也就是说,我没有做任何与自动完成有关的事情。相反,我的发生是因为我在 jQuery 中尝试这个......

$(this).css('background', 'rgba(64,255,64,.4)');

jQuery 试图做什么...

style [ 'background' ] = 'rgba(64,255,64,.4)';

当然,它失败了,因为 rgba 不是 Internet Explorer 支持的 CSS 值。所以你并不孤单,但就我而言,我只是做错了。合适的 jQuery 语法是这样的......

$(this).css({backgroundColor: '#40ff40', opacity: .4});

这是我的来源...

http://www.cjs.me.uk/blog/?p=238

【讨论】:

  • 我在第 4618 行也遇到了一个错误......其中“值”为空。这发生在 .effect('highlight', {}, 1000)
猜你喜欢
  • 1970-01-01
  • 2011-12-17
  • 2010-11-24
  • 2011-02-18
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多