web-dev-qa-db-ja.com

「element.dispatchEventは関数ではありません」FF3.0のfirebugで捕捉されたjsエラー

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ファイルを含めています。

誰かがこの種のエラーに遭遇しましたか?このエラーが表示される理由を誰かに説明してください。

53
Subh

偶然同じページで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
110
Davo

すべてのJqueryスクリプトタグの追加後

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

prototypeとJqueryの競合を避けるため。

10
King Linux

次の行を変更します

$(document).ready(function() {

jQuery.noConflict();
jQuery(document).ready(function($) {
2
Kinjal Pathak

追加する必要があります

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

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
1
Mufrah