使用 PrimeFaces 手动添加/加载 jQuery 会导致未捕获的类型错误

2023-11-27

我正在使用 PrimeFaces 3.5 和 JSF 2.0。我想使用 jQuery 插件,因此我将 jQuery 包含在我的 web 应用程序中。

<h:head>
    <h:outputScript name="js/jquery.min.js" />
    <h:outputScript name="js/jquery-ui.js" />
</h:head>

但是,当使用 PrimeFaces 组件时,我会遇到如下未捕获的类型错误:

未捕获的类型错误:无法读取未定义的属性“长度”

未捕获的类型错误:对象 [object Object] 没有方法“自动完成”

未捕获的类型错误:无法读取未定义的属性“keyCode”

未捕获的类型错误:this.jq.draggable 不是函数

未捕获的类型错误:无法读取未定义的属性“LinearAxisRenderer”

未捕获的类型错误:对象 [object Object] 没有方法“fileupload”

未捕获的类型错误:this.jqEl.datetimepicker 不是函数

Etc.

这是如何引起的以及如何解决?


PrimeFaces 是一个基于 jQuery 的 JSF 组件库。它already附带 jQuery 和 jQuery UI,开箱即用。由于某种原因,手动加载 jQuery/jQuery UI 的另一个副本是不正确的。多个不同版本的 jQuery 文件只会以这种方式相互冲突,因为它们不一定使用/共享完全相同的变量/函数。

摆脱所有手动加载的 jQuery/UI 文件。这毫无意义。

如果您这样做是因为您需要在某些页面中使用一些 jQuery/UI 魔法,而该页面不一定使用任何 PrimeFaces 组件(因此其捆绑的 jQuery 不会被自动包含,因此$()将不可用),那么您始终可以在某些主模板中手动显式包含 PrimeFaces 捆绑的 jQuery,如下所示:

<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
<h:outputScript library="primefaces" name="jquery/jquery-plugins.js" target="head" />

(the target="head"如果你直接在里面指定它们是不必要的<h:head>)


如果您绝对需要提供自己的 jQuery 版本,因为 PrimeFaces 中捆绑的版本已经过时,那么您有 2 个选择:

  • 让您的 web 应用程序在完全相同的资源标识符(库/名称)上提供自己的资源/resources/primefaces/jquery/jquery.js(不要更改路径或文件名!)。然后将选择这个而不是 PrimeFaces 捆绑的那个。

  • Unpack primefaces.jar, 代替/META-INF/resources/primefaces/jquery/jquery.js使用较新版本的文件(不要更改路径或文件名!),重新打包新版本primefaces.jar.

(并且不要忘记删除所有这些<h:outputScript>引用自己的副本)

但要彻底测试。由于与 PrimeFaces 捆绑版本相比,较新的 jQuery 版本中存在微小的更改/错误修复,因此某些 PrimeFaces 特定的功能可能会因升级而中断。

最重要的是,您应该绝对确保您这样做not提供 jQuery/UI 的多个副本,否则您仍然会像现在一样面临冲突/冲突。使用$.noConflict()正如有些人可能建议的那样,绝对不是为了能够一起使用多个 jQuery 库。它的目的是能够将 jQuery 与另一个 JS 库一起使用,该库恰好也使用$()作为全局函数,例如 Prototype。另请参见 a.o.Jquery和原型不冲突.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PrimeFaces 手动添加/加载 jQuery 会导致未捕获的类型错误 的相关文章

随机推荐

  • Google plus客户端“发生内部错误”[重复]

    这个问题在这里已经有答案了 昨天 当我尝试在我的应用程序中使用 Google Plus 签署用户时 我开始收到 发生内部错误 我使用得很好并且没有更改 代码已经很长时间没有改变了 GmsClient回报 connect bindServic
  • Azure 上的 Django 不加载静态文件

    我按照下面的教程在azure上创建了一个django项目 http www windowsazure com en us develop python tutorials web sites with django 一切正常 直到我尝试安装
  • 大量 if 语句的快速替代方案

    我是java初学者 我正在制作一个简单的程序 在其中输入一些内容 如果我输入的内容与 数据库 上的其中一个内容匹配 那么它会打印一些文本 有没有比这样做更简单的方法来检查这一点 int 1 int 2 int 3 etc if USER I
  • NoClassDefFoundError:无法初始化类 androidx.customview.poolingcontainer.PoolingContainer

    使用 Jetpack Compose UI 工具1 2 0 rc01和组合编译器1 2 0 android composeOptions kotlinCompilerExtensionVersion 1 2 0 dependencies d
  • Node.js 中域的替代方案

    由于 nodev4 2 1 已发布 并且该域被标记为已弃用 所以现在我需要它的替代方案 早些时候 我曾经将请求级别变量存储在域中 以便我可以在请求的同一上下文中查找数据的其他过程中使用这些变量 我们有什么办法可以实现它吗 注意 我无法使用请
  • 如何使用 boto3 为 AWS Cognito 创建 SECRET_HASH?

    我想使用 boto3 和 python 为 AWS Cognito 创建 计算 SECRET HASH 这将合并到我的 fork 中warrant 我将我的 Cognito 应用程序客户端配置为使用app client secret 但是
  • 如何在C#中使用实体框架从存储过程获取输出结果?

    我正在开发一个 ASP NET MVC 项目 我的目标是从表格中准备一份报告 所以 我第一次编写 Linq 代码 但速度太慢了 之后我编写了一个 SQL 查询 它非常快 我想使用存储过程从我的表中获取报告数据 事实上 我的项目非常简单 它获
  • 对于 git diff --name-status,输出是什么意思?

    当我跑步时git diff name status我看到这样的行 MM mm Jenkinsfile MM 是什么意思 mkreiger1 的 可能重复 确实提供了有用的信息 但就像 Koop4 的答案一样 它在不引用回答此问题的 git
  • 如何禁用颤振上的自动热重载?

    我已经搜索过这个问题并看到了解决方案 但我无法找出问题所在 我收到一些错误 因为每次编写代码时 它都会在我完成代码之前直接运行热重载 那么 如何禁用 flutter 中的自动热重载呢 flutter 中的自动热重载非常烦人 我只想使用基于
  • 两次调用 CoInitialize()

    假设我的应用程序在启动时调用 CoInitialize 并在存在之前调用 CoUninitialize 假设我有一个由我的应用程序使用的第三方组件并执行类似的操作 这会导致某种故障吗 当调用已经提交时 可以调用 CoInitialize 吗
  • Postgres 类似于 SQL Server 中的 CROSS APPLY

    我需要将为 MS SQL Server 2005 编写的 SQL 查询迁移到 Postgres 9 1 最好的替代方法是什么CROSS APPLY在这个查询中 SELECT FROM V CitizenVersions CROSS APPL
  • 为什么我的 D3 折线图显示每个实体的黑色区域?

    我制作了一个网络爬虫 用于获取有关不同银行的货币转移汇率的数据 并在一段时间内以 D3 线图的形式显示该数据 每家银行都有一条线 汇率为每天 cronjob 服务器端确保每天都会进行抓取 在前端 它使用 D3 json 从此 url 获取数
  • 从语音中获取用户输入?

    我刚刚开始尝试 C Net 中的 Windows Speech to Text 功能 我目前已经掌握了基础知识 IE 说点什么 它会根据你所说的提供输出 但是 我正在努力弄清楚如何实际接收用户输入作为变量 我的意思是 例如 如果用户说 Ca
  • 将图像文件保存到sql Server并将字节数组转换为图像

    我将图像存储在数据库中 并希望将它们从字节数组转换为图像 将对象转换为字节数组没有问题 但在尝试从字节数组转换为图像时出现 参数无效 错误 我传递给方法的对象来自数据集行 存储过程 USE GO Object StoredProcedure
  • R 中的 diag() 函数

    有没有办法使用diag 矩阵中的函数而不使用内置函数或迭代 M lt matrix 1 9 ncol 3 make a matrix q5b lt function M function 我知道M 1 1 M 2 2 and M 3 3 会
  • 如何在没有库函数的情况下将字符串解析为整数?

    最近我在一次采访中被问到这个问题 如何在不使用任何库函数且不考虑语言的情况下将 12345 形式的字符串解析为其整数表示形式 12345 我想到了两个答案 但面试官说还有第三个 这是我的两个解决方案 解决方案 1 保留一本映射 1 gt 1
  • 如何相对于鼠标位置旋转图像?

    我正在尝试做这样的效果 http metatroid com articles在页面顶部 但我无法仅使用他们给出的代码来旋转它 var img image if img length gt 0 var offset img offset f
  • 如何告诉 google bot 跳过部分 HTML?

    有很多关于相反情况的信息 当人们尝试在 HTML 中包含内容时 谷歌机器人可以看到这些内容 但用户不可见 就我而言 我需要相反的东西 从谷歌机器人隐藏一些 html 问题是如何 闪存不是答案 也不想使用花哨的 ajax 东西 主要是因为我立
  • 获取 Cocoa 中的当前壁纸

    我正在使用此代码来获取当前壁纸 NSURL imageURL NSWorkspace sharedWorkspace desktopImageURLForScreen NSScreen mainScreen 这工作正常 但是当我将图片文件夹
  • 使用 PrimeFaces 手动添加/加载 jQuery 会导致未捕获的类型错误

    我正在使用 PrimeFaces 3 5 和 JSF 2 0 我想使用 jQuery 插件 因此我将 jQuery 包含在我的 web 应用程序中