- 締切済み
HTML内への2つのJavaScriptの書き込みについて
お世話になります。 この1週間皆様のお力をお貸しいただいて ようやくほぼ完成というところまでこぎつけました!! 本当に皆様のご協力に感謝です!ありがとうございます。 HTML内に、JavaScriptファイルへのリンクが2点 そのほかにJ Queryのギャラリーを利用しているため、 HTMLに直接書いてある 下記Javascriptがあります。 $('#thumbs-adv ul.thumbs li').css('opacity', onMouseOutOpacity) .hover( function () { $(this).not('.selected').fadeTo('fast', 1.0); }, function () { $(this).not('.selected').fadeTo('fast', onMouseOutOpacity); } ); $(document).ready(function() { var galleryAdv = $('#gallery-adv').galleriffic('#thumbs-adv', { delay:2000, numThumbs:16, <省略. . . . . . > onTransitionOut:function(callback) { $('#slideshow-adv, #caption-adv').fadeOut('fast', callback); }, onTransitionIn:function() { $('#slideshow-adv, #caption-adv').fadeIn('fast'); }, onPageTransitionOut:function(callback) { $('#thumbs-adv ul.thumbs').fadeOut('fast', callback); }, onPageTransitionIn:function() { $('#thumbs-adv ul.thumbs').fadeIn('fast'); } }); var galleryMin = $('#gallery-min').galleriffic('#thumbs-min', { imageContainerSel:'#slideshow-min', controlsContainerSel:'#controls-min' }); }); ここに、まだ他のJavaScriptをHTMLページ内に 追加したいのですが、追加すると、 J queryのギャラリーの表示がなくなってしまいます。 追加したいJavaScriptは以下です。 <script type="text/javascript" charset="UTF-8"> var M0, M1; /*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/ 'load', function () { var cnt = 0, I, o; var UL = document.getElementById('gazou'); var LI = UL.getElementsByTagName('LI'); var MI = document.getElementById('menu-index'); document.getElementById('num1').firstChild.nodeValue = I = LI.length; for (var i = 0; i<I; i++) { o = document.createElement('LI'); o.appendChild(document.createTextNode('○')); o.id = 'idx-' + i; MI.appendChild(o); } (M1 = LI[0]).style.zIndex = 2; }, false); document./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/ 'mouseover', function (evt) { var e = evt./*@if(1) srcElement @else@*/ target /*@end@*/; var p = getParent(e, 'id', 'menu-index'); var n; if (M0) { M0.firstChild.nodeValue = '●'; M0.style.color = ''; M0 = null; } if (p && e.nodeName == 'LI') { e.firstChild.nodeValue = '●'; e.style.color = 'red'; M0 = e; n = e.id.match(/-(\d+$)/)[1]; document.getElementById('num0').firstChild.nodeValue = n - 0 + 1; Image('gazou', n); } }, false); function getParent(node, type, val) { return node ? (val == node[type]) ? node: arguments.callee(node.parentNode, type, val): null; } function Image (id, vno) { var a = 100, LI = document.getElementById(id).getElementsByTagName('LI')[vno];if (LI == M1) return; var P = (function L () { M1.style./*@if(1) filter = 'Alpha(opacity=' + a +')' @else@*/ opacity = a/100 +'' /*@end@*/; if ((a-=20)<0) M1.style.zIndex = 0 +'', LI.style.zIndex = 2 +'', M1 = LI; else setTimeout(L, 30); }); LI.style.zIndex = 1; LI.style./*@if(1) filter = 'Alpha(opacity=100)' @else@*/ opacity = '1' /*@end@*/; P(); } // --> </script> HTML内に書き込むJavaScriptは1つでないといけないのでしょうか? また、この問題を解決するには、どうすればよいでしょうか? よろしくご教授お願いいたします!!!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
>HTML内に書き込むJavaScriptは1つでないといけないのでしょうか? そんなことはありません。 >また、この問題を解決するには、どうすればよいでしょうか? 直接の原因はわかりませんが、おそらくなんらかの競合でしょうね。 オブジェクトに対するメソッド、グローバルの変数名、ユーザー関数名 など競合すれば後で書いたほうが優先されると思います。 問題を解決するためには、ソースを改変する必要があるでしょう。 そうなると元ライブラリの著作権の問題もでてくるでしょう、 改変したライブラリを公開していいかどうか作者に確認をとって から質問してください。=自己解決できないならバッティング するライブラリは同時使用しないというのが筋ということです
お礼
おっしゃる通り中で使用しているScriptの競合でした! ご回答ありがとうございました。