MovableTypeのススメ TOP > JavaScript

2007年9月12日

jquery.jsとprototype.jsの干渉について

jquery.jsとprototype.jsの干渉について

実はThickBox3を導入してからAjaxカレンダーが表示されなくなってました。

で、いろいろと調べたところThickBox3で使っているjquery.jsとAjaxカレンダーで使っているprototype.jsが干渉している様子。

あまり詳しいことはわかりませんが、jquery.jsとprototype.js共に$()という書式を持っていてそれぞれの戻り値が異なるためおきているようです。


以下はその対策です。

1.ヘッダー部分を下記のように変更(赤字部分を追加)

<head>
<script type="text/javascript" src="<$MTBlogURL$>prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>jquery.js"></script>

<script type="text/javascript">
    jQuery.noConflict();
</script>

</head>

2.thickbox.jsを開き $() function を jQuery() function に置換
具体的にはテキストエディタの一括置換で$(jQuery(に置き換えました。

3.修正したthickbox.jsをアップロード

以上でThickBox・Ajaxカレンダー共に機能するようになりました。


参考にしたサイト
ウノウラボ
夜の Discovery
この記事は期待通りの内容でしたか?
はてなブックマークに追加 del.icio.usに追加 livedoor clip!へ追加 Yahoo!ブックマークに登録
1