【问题标题】:Error: cannot call methods on autocomplete prior to initialization; attempted to call method 'destroy'错误:无法在初始化之前调用自动完成的方法;试图调用方法“销毁”
【发布时间】:2014-02-28 05:22:30
【问题描述】:

我正在使用 ajax-solr。它适用于 jquery-ui-1.8.*。

但是当我将它升级到 jquery-1.10.* 时,它给了我这个异常:

无法在初始化之前调用自动完成的方法;试图调用方法'destroy'

【问题讨论】:

  • 我在自动完成小部件的初始化中得到了答案...只需添加 $(this.target).find('input').autocomplete();这将初始化自动完成小部件,这是因为在 1.10.* .Jquery 中添加了错误消息,用于在没有正确初始化的情况下使用函数,而在以前的版本中没有。

标签: jquery ajax jquery-ui solr


【解决方案1】:

我在自动完成小部件的初始化中得到了答案......只需添加

$(this.target).find('input').autocomplete();

这将初始化自动完成小部件,这是因为在 1.10.* 中。Jquery 添加了错误消息,用于在没有正确初始化的情况下使用函数,而在以前的版本中没有。

【讨论】:

    【解决方案2】:

    如果你想确保自动完成小部件被销毁,你可以通过检查目标元素的 CSS 类来检查它是否真的被初始化,例如

    if ($target.hasClass('ui-autocomplete')) {
        $target.autocomplete('destroy')
    }
    

    【讨论】:

      【解决方案3】:

      我在小部件调用方面遇到了类似的错误,

      在自动完成初始化中,我们调用了它的小部件函数,这导致了控制台错误。

      在 test-result.component.ts 中,

      (<any> window).$(testelementId).autocomplete({
      ……..
      (<any> window).$(this).autocomplete('widget').css('width', '100%');
      …..
      })
      

      因此,最简单的解决方法是删除该特定调用或将其放置在初始化之后并测试是否会破坏任何样式。对我来说,删除小部件调用没有任何害处,所以继续吧。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        相关资源
        最近更新 更多