Jquery UI 和 Sitefinity 3.7 的问题

发布于 2024-10-20 02:33:00 字数 811 浏览 1 评论 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. 在 sitefinity 中使用带有自动完成小部件的最新 Jquery UI 库
  2. 。我检查了我的文件路径是否正确。 (他们是)。
  3. 使用的警报例如 alert("$('input#autocomplete').autocomplete")
    • 它们不断返回未定义的值。

任何帮助将不胜感激!

Im building a search autocomplete using Jquery UI. Everything worked perfectly fine when I built the search in a minimal document with nothing but an input. eg:

<input id="autocomplete" />

and the 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>

However, once I place my code into a Sitefinity 3.7 page, I get an error, telling me that "$("input#autocomplete").autocomplete" is not a function.

This error only occurs once its in sitefinity

Things Iv tried

  1. Im using the latest Jquery UI library with the autocomplete widget.
  2. Iv checked that my file paths are correct. (they are).
  3. Used alerts eg
    alert("$('input#autocomplete').autocomplete")

    • they keep returning undefined.

Any help would be much appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

影子是时光的心 2024-10-27 02:33:00

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

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

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

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

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

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

<%@ Register Assembly="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

祝你好运!

Sitefinity itself employs jquery and is probably overriding many of the base classes/methods with the same shorthand classnames ($, Jquery).

The consequence is that you cannot have your javascript on your page BEFORE any sitefinity page elements/controls are being inserted. I was having this same issue. I moved all my javascript AFTER the sitefinity elemens, to the bottom of my pages and everything worked fine again.

Bear in mind, what is actually happening in this case is that

  1. sitefinity injects their own jquery, then
  2. your link to the jquery.min.js file overrode sitefinity's.

So it's possible that doing this may actually break some of sitefinity's jquery-based functionality, although I haven't had any issues in the last 2 months.

You can also try using the sitefinity built-in version of jQuery (which is what Telerik recommends at the forum link below, although I didn't have much luck with this technique):

<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" TagPrefix="sf" %>

Here's the link to a recent Sitefinity forum post regarding this exact same issue:
http://www.sitefinity.com/devnet/forums/sitefinity-4-x/general-discussions/jquery-popup-not-working-in-telerik-webapplication.aspx

Good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文