Javascript Prototype和jQuery与$.when.apply冲突
我尝试了多种代码使用组合,以使原型和jQuery正常工作,但还没有成功 这是我目前拥有的 index.html:Javascript Prototype和jQuery与$.when.apply冲突,javascript,jquery,Javascript,Jquery,我尝试了多种代码使用组合,以使原型和jQuery正常工作,但还没有成功 这是我目前拥有的 index.html: <script src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js"></script> <script src="http://code.jquery.com/jquery.js"></script> <script src="MAI
<script src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js"></script>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="MAIN_JS_FILE.js"></script>`
现在,当页面加载(页面加载正确)时,chrome控制台会显示一条错误消息:
未捕获类型错误:未定义不是函数
单击错误文件链接时,它指向元素.dispatchEvent(事件)第7066行
感谢您的帮助
谢谢
编辑:我已将MAIN_JS_FILE.JS
文件更改为仅使用jQuery
而不是$
所以现在没有一个javascript代码使用$
,仍然显示未定义的错误
如果我现在使用jQuery.noConflict()在.ready()
函数之前,则$.when.apply
代码甚至不会执行。正如您在注释中提到的@steven iseki
一样,可以使用。你可以在他们的网站上看到:
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery中,$只是jQuery的别名,因此所有功能都可以使用,而不需要使用$
事实上,Prototype
也使用了$
符号
另外,请记住使用jQuery
而不是$
登录jQuery代码,例如:
jQuery(selector).on('click', function(){...});
我认为这里没有jQuery冲突
错误。尝试从main.js
更改代码。尝试其他方法在此处完成任务。我分析了您的代码,但是prototype.js
有一种隐藏真实内容的方法 你有没有研究过这意味着你正在某处使用原型,而错误似乎不在发布的代码中。它有没有说错误在哪一行。@steveniseki-他已经在用它了,以闭包的形式。(1)jQuery.noConflict
是你的朋友;(2) 我真的不明白为什么人们应该包含两个做类似事情的lib。@adeneo它应该可以使用jQuery noConflict,正如你所说的,发布的代码看起来不错。现在,我在整个代码中使用jQuery
。仍然会显示未定义
错误。如果我使用jQuery.noConflict()在MAIN_JS_FILE.JS
的顶部,然后jQuery.when.apply
中的代码甚至不会执行。
jQuery(selector).on('click', function(){...});