0

我正在使用 Jquery UI 构建搜索自动完成功能。当我在一个只有输入的最小文档中构建搜索时,一切都运行良好。例如:

<input id="autocomplete" />

和jQuery

<script>

    $( "input#autocomplete" ).autocomplete({
            source: ['johannesburg z', 'johannesburg x', 'johannesburg v','johannesburg b','johannesburg a','johannesburg q', 'johannesburg u', 'johannesburg y', 'johannesburg o', 'johannesburg p']
    });
</script>

但是,一旦我将代码放入 Sitefinity 3.7 页面,就会出现错误,告诉我“$("input#autocomplete").autocomplete" 不是函数。

此错误仅在站点有限时发生

我尝试过的事情

  1. 我使用带有自动完成小部件的最新 Jquery UI 库。
  2. 我检查了我的文件路径是否正确。(他们是)。
  3. 使用过的警报,例如 alert("$('input#autocomplete').autocomplete")
    • 他们不断返回未定义。

任何帮助将非常感激!

4

1 回答 1

1

Sitefinity 本身使用 jquery,并且可能使用相同的速记类名($,Jquery)覆盖许多基类/方法。

结果是,在插入任何 sitefinity 页面元素/控件之前,您的页面上不能有您的 javascript。我遇到了同样的问题。在 sitefinity elemens 之后,我将所有的 javascript 移到了页面的底部,一切都恢复正常了。

请记住,在这种情况下实际发生的是

  1. sitefinity 注入自己的 jquery,然后
  2. 您指向 jquery.min.js 文件的链接覆盖了 sitefinity 的链接。

因此,这样做实际上可能会破坏 sitefinity 的一些基于 jquery 的功能,尽管我在过去 2 个月中没有遇到任何问题。

您也可以尝试使用 jQuery 的 sitefinity 内置版本(这是 Telerik 在下面的论坛链接中推荐的,尽管我对这种技术没有太多运气):

<%@ 注册程序集="Telerik.Sitefinity" 命名空间="Telerik.Sitefinity.Web.UI" TagPrefix="sf" %>

这是关于这个完全相同的问题的最近 Sitefinity 论坛帖子的链接: http ://www.sitefinity.com/devnet/forums/sitefinity-4-x/general-discussions/jquery-popup-not-working-in-telerik -webapplication.aspx

祝你好运!

于 2011-03-30T14:52:11.437 回答