Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Prototype和jQuery与$.when.apply冲突_Javascript_Jquery - Fatal编程技术网

Javascript Prototype和jQuery与$.when.apply冲突

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

我尝试了多种代码使用组合,以使原型和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="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(){...});