これは初心者的な言い方で言うと、jQueryのjsファイルとライトボックスのprototype.jsファイルの両方に「$」の指示があるので、うまく読み込めなくなってしまう・・・というようなことみたいですね。
なので、jQueryの方のjsファイル(ここではrollover.js)の指示出しの「$」を置き換えればOKらしいっす。
手順は
1.HTMLファイルでjQueryのjsファイルの「$」を別のもの(「jQuery」)にするという指示を書く
2.jQueryのjsファイルの「$」を「jQuery」に置換する
・・・と意外に簡単!
で、具体的な書き方はこんな感じ。
【HTML】・・・赤字の部分を追加
<!-- jQuery読み込みと競合回避 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<script type="text/javascript" src="common/js/rollover.js"></script>
<!-- lightboxスプリクト読み込み -->
<script type="text/javascript" src="common/js/prototype.js"></script>
<script type="text/javascript" src="common/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="common/js/lightbox.js"></script>
【rollover.js】・・・「$(」を「jQuery(」に一括置換
jQuery(function(){
jQuery("img.rollover").mouseover(function(){
jQuery(this).attr("src",jQuery(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_on$2"))
}).mouseout(function(){
jQuery(this).attr("src",jQuery(this).attr("src").replace(/^(.+)_on(\.[a-z]+)$/, "$1$2"));
}).each(function(){
jQuery("<img>").attr("src",jQuery(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_on$2"))
})
})
jQuery("img.rollover").mouseover(function(){
jQuery(this).attr("src",jQuery(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_on$2"))
}).mouseout(function(){
jQuery(this).attr("src",jQuery(this).attr("src").replace(/^(.+)_on(\.[a-z]+)$/, "$1$2"));
}).each(function(){
jQuery("<img>").attr("src",jQuery(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_on$2"))
})
})
ここでちょっと注意なのが、rollover.jsの置換の際、「$」じゃなくて「$(」で置換すること。
すべての$をjQueryに置換するとダメです。
$1_on$2だとかの$をjQueryにしちゃったらうまくいきません。
参考サイト
http://mt.nosusume.com/2007/09/jqueryjsprototypejs.html
0 件のコメント:
コメントを投稿