(最終的に解決しました)すべてのボディから、コードが良好であり、それを実証していると伝えられても、あなたの場所ではうまく動作しません。私は、jQuery、menumaker、そして最終的に私のローカルスクリプトが呼び出されたはずの順番でした(これは上の順序です)。アコーディオンメニューのJavaScriptコード
<script src="/scripts/jquery-1.12.0.min.js"></script>
<script src="https://s3.amazonaws.com/menumaker/menumaker.min.js"></script>
<script src="/scripts/01_MainMenu.js"></script>
Google Chromeデバッガでエラーが指摘されましたが、これまで使用していませんでしたが、今から使用されます。
(更新)すべてのお返事ありがとうございます。<script src="/scripts/jquery-1.12.0.min.js"></script>
私はまた、gavgrifが提案したリンクでスクリプトを試しましたが、残念ながらまだ動作していません。
しかし、私はMozilla Firefoxのデバッガで次のエラーを取得する:
メッセージ:jQueryのが定義されていません。
エラーメッセージは、スクリプトの最後の行(26)、 "(jQueryの)" を含むものを指します。
(オリジナルポスト)
私は、サブメニューの拡大/契約にアコーディオンメニューを作ることになっているCSS MenuMakerの、からこのスクリプトを受けました。しかし、私は最後に(jQuery)ビットを理解していないし、なぜスクリプト全体が丸いかっこの間にあるのか理解していない。私はJavaScriptの初心者です。
明らかに、スクリプトは機能していません。
(function($){
$(document).ready(function(){
$('#main_menu ul ul li:odd').addClass('odd');
$('#main_menu ul ul li:even').addClass('even');
$('#main_menu > ul > li > a').click(function() {
$('#main_menu li').removeClass('active');
$(this).closest('li').addClass('active');
var checkElement = $(this).next();
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).closest('li').removeClass('active');
checkElement.slideUp('normal');
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#main_menu ul ul:visible').slideUp('normal');
checkElement.slideDown('normal');
}
if($(this).closest('li').find('ul').children().length == 0) {
return true;
} else {
return false;
}
});
});
})(jQuery);
HTML:
<div id="main_menu">
<ul>
<li class="active"><a href="../Main.php">Home</a></li>
<li><a href="/pages/04_Taxonomy.php">Taxonomy</a></li>
<li><a href="/pages/01_PlantList.php">Virtual Herbarium</a></li>
<li><a href="/pages/03_PlantData.php">Data Repository</a></li>
<li class="has-sub"><a href="#">Sources</a>
<ul>
<li><a href="/pages/072_Surse_Books.php">Books</a></li>
<li><a href="/pages/073_Surse_Journals.php">Journals</a></li>
</ul>
</li>
<li><a href="#">Habitats</a></li>
<li><a href="#">Endangered species</a></li>
<li><a href="#">Papers</a></li>
</ul>
</div>
対応するCSSはかなり長いです。必要な場合は投稿しますが、個人的にはそうは思わないです。
ビットで最後はコードをラップする括弧に関連しています。インライン即時呼び出し関数式(IIFE)です。この場合、 '$'変数を妨害する外部コードを停止してください。 –
ありがとうございます。私にとっては珍しいようでした。私はこれまでにそれを見たことがない。 – Mikey
なぜ機能していないのか、 '(function(){...}())'が何であるか知りたいですか?それらは非常に異なる2つの無関係な質問です。 1つは重複しており、もう1つは情報を提供しない限り答えられません。 –