javascript - 我如何也从脚本文件中删除 jQuery 对 $ 的使用?

标签 javascript jquery webmethods

我正在尝试在 Software AG webMethods 开发 IDE 中使用 jQuery 的控件。现在我从以下 URL 导入 jQuery 的脚本:

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

当我运行 webMethods IDE 部署的页面时,在多个浏览器中出现以下错误(两个蓝色箭头之间):

enter image description here

中间的错误是我得到的正常错误(即旁边带有蓝色箭头的错误),因为页面中的其他内容也在使用“$”,而 jQuery 也使用它,它导致另一个“$”用户感到困惑,因为另一个“$”用户可以控制“$”符号..

为了证实这一点,这是我所做的:

我写了下面的 javascript 代码(不用担心 CAF.model 的内部使用。它的 .id 函数返回控制 jQuery 处理它所需要的)

alert($(CAF.model("#{activePageBean.clientIds['txtDateInput']}").id).val());

...它导致了上图中显示的另一个“getAttribute”错误..

然后我尝试了:

jQuery.noConflict();
alert(jQuery(CAF.model("#{activePageBean.clientIds['txtDateInput']}").id).val());

而且没有错误..!

此外,如果我使用代码:

jQuery.noConflict();
alert($(CAF.model("#{activePageBean.clientIds['txtDateInput']}").id).val());

它导致底部蓝色箭头错误:因为使用“$”符号的其他实体无法弄清楚函数“val”是什么......

上面的内容向我证实了错误是因为 jQuery 的脚本可能在那里使用“$”符号供自己使用..

现在尝试解决这个问题,我尝试在调用 jQuery 自己的脚本文件的脚本 block 之前添加另一个脚本 block ,并放入以下代码:

jQuery.noConflict();

这导致了第一个蓝色箭头错误:.. 'jQuery' 没有在文档的早期定义,这是有道理的..

所以基本上,我需要以某种方式告诉主 jQuery 脚本文件也不要使用“$”符号。我该怎么做?

最佳答案

jQuery.noConflict(); 需要在加载 jQuery 后立即在脚本 block 中运行。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
    var jq = jQuery.noConflict();
</script>

上面的 jQuery 别名为 jq 而不是 $

jQuery 插件传入 jQuery 对象并在内部将其别名为 $,但范围不是全局的,因此无需在插件中更改它。

关于javascript - 我如何也从脚本文件中删除 jQuery 对 $ 的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9633812/

相关文章:

javascript - 获取与 javascript 正则表达式的链接

javascript - 为什么函数只运行一次?在上一次调用完成后,尝试使用计数器函数多次运行函数

java - 使用java服务真的比flow服务快吗?

javascript - 根据ids选择多个元素,得到相邻的最大组

javascript - Parsley ajax 发送 post 变量

javascript - 如何在单击加载时隐藏除 anchor href 引用的第一个 div 之外的所有内容

javascript - 在 IE8 上使用 jQuery 克隆 HTML5 元素和事件

webmethods - 我可以使用什么转换器将日期转换为 YYYY - MM - DD 格式,最终结果中没有时间格式?

api - 使用 Webmethods 作为客户端将附件添加到 JIRA REST API

javascript - Froala React 组件抛出未定义的 "cannot set property ' more_btn'