これをデバッグするのに十分な JavaScript の経験がありません。どんな助けでも大歓迎です。
以下のコードでは、
switch($el_title.innerHTML)
それとも私のものですか
.animate( style , 400, function() {
正しくない発言。それは両方かもしれません。
$el_title.innerHTML が正しいかどうかわかりません。対応するHTMLは次のようになります
<ul>
<li>
<a href="images/Appetizers.jpg">About</a>
...
オブジェクトになるようにスタイル変数を作成しました style = {}; それがオブジェクト変数を作成する方法だと思います。そのスタイル変数を .animate に渡すことは機能していないようです。
完全なコードは次のとおりです。
initEventsSubMenu = function() {
$menuItems.each(function(i) {
var $item = $(this), // the <li>
$el_title = $item.children('a:first'),
el_image = $el_title.attr('href'),
$sub_menu = $item.find('.ac_subitem'),
$ac_close = $sub_menu.find('.ac_close'),
style = {};
switch($el_title.innerHTML)
{
case 'About':
style = {height:'400px',marginTop:'-200px'};
break;
case 'Menu':
style = {height:'200px',marginTop:'-150px'};
break;
case 'Take-Out':
style = {height:'500px',marginTop:'-250px'};
break;
case 'Gallery':
style = {height:'200px',marginTop:'-150px'};
break;
case 'Contact':
style = {height:'400px',marginTop:'-200px'};
break;
default:
style = {height:'400px',marginTop:'-200px'};
}
$el_title.bind('click.Menu', function(e) {
$.when(toggleMenuItems('down')).done(function(){
openSubMenu($item, $sub_menu, el_image);
});
return false;
});
/* closes the submenu */
$ac_close.bind('click.Menu', function(e) {
closeSubMenu($sub_menu);
return false;
});
});
},
openSubMenu = function($item, $sub_menu, el_image, style) {
$sub_menu.stop()
.animate( style , 400, function() {
/*
.animate({
height : '200px',
marginTop : '-150px'
}, 400, function() {
*/
また、下部にあるコメント付きのコードが機能することも知っています。そして、閉じ括弧は問題ないと確信しています。
助けてくれてありがとう。