58

在 FF3.0 中加载我的索引页面时出现以下错误。抱歉,我无法在此处粘贴脚本,因为它是 2030 行代码。

element.dispatchEvent 不是函数

在扩展时,它给了我下面的东西,

fire()()prototype.js?1(第 3972 行)

_methodized()()prototype.js?1(第 246 行)

fireContentLoadedEvent()prototype.js?1(第 4006 行)

[打破这个错误] element.dispatchEvent(event);

element.dispatchEvent(event);在prototype.js 的第3972 行。我在我的索引页面中包含了prototype.js 以及其他 10 个 js 文件。

有没有人遇到过这种错误?请有人解释一下为什么会出现这个错误。

4

5 回答 5

120

您是否有机会在同一页面上使用 jquery 和原型?

如果是这样,请使用 jquery noConflict 模式,否则您将覆盖原型 $ 函数。

通过执行以下操作激活 noConflict 模式:

<script src="jquery.js"></script>
<script>jQuery.noConflict();</script>

注意:这样做,美元符号变量不再代表 jQuery 对象。为了避免重写所有的 jQuery 代码,你可以使用这个小技巧为 jQuery 创建一个美元符号范围:

jQuery(function ($) {
    // The dollar sign will equal jQuery in this scope
});

// Out here, the dollar sign still equals Prototype
于 2009-07-16T02:50:23.120 回答
10

在所有 Jquery 脚本标签的添加之后

<script>jQuery.noConflict();</script>

避免 Prototype 和 Jquery 之间的冲突。

于 2013-08-20T19:58:49.483 回答
4

更改以下行

$(document).ready(function() {

jQuery.noConflict();
jQuery(document).ready(function($) {
于 2017-11-22T07:28:18.453 回答
1

你必须添加

<script>jQuery.noConflict();</script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
于 2013-02-22T07:30:10.627 回答
-1

通过在 noconflict.js 之后调用库 jquery 或在 noconflict.js 之后多次调用 jquery 库来检查这一点

于 2016-06-17T22:11:53.017 回答